.htaccess用于包含多个变量的友好URL

Mas*_*erT 3 php .htaccess mod-rewrite url-rewriting

我正在努力使我的网站更加SEO友好我正在使用

RewriteEngine On
RewriteRule (.*)$ index.php?page=$1
Run Code Online (Sandbox Code Playgroud)

要打开site.co.uk/index.php?page=page_namesite.co.uk/page_name

我也想将它用于子页面.我试过这个:

RewriteEngine On
RewriteRule (.*)/(.*)$ index.php?page=$1&subpage=$2
Run Code Online (Sandbox Code Playgroud)

但它不起作用,它运行site.co.uk/page_name/sub_page但是当你去site.co.uk/page_name它时返回404未找到.

我希望它运行site.co.uk/page_name并返回page_name

要么

site.co.uk/page_name/sub_page 并返回 sub_page

等等

site.co.uk/page_name/sub_page/sub_page2/...

Law*_*one 8

仅使用:

RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)

没问题,然后您可以在脚本中路由请求.

您使用explode()分隔符/拆分页面变量,然后设置变量.

$route = explode('/',$_GET['page']);

$page    = isset($route[0]) ? $route[0] : null;
$subpage = isset($route[1]) ? $route[1] : null;
$yada    = isset($route[2]) ? $route[2] : null;
Run Code Online (Sandbox Code Playgroud)

许多MVC框架使用此方法.它叫做路由.