我正在努力使我的网站对 SEO 更加友好 我目前正在使用
RewriteEngine On
RewriteRule (.*)$ index.php?page=$1
将 site.co.uk/index.php?page=page_name
变成 site.co.uk/page_name
我也想将其用于子页面。 我试过这个:
RewriteEngine On
RewriteRule (.*)/(.*)$ index.php?page=$1&subpage=$2
但它不工作,它运行 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/...
最佳答案
仅使用:
RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
没问题,然后您可以在脚本中路由请求。
您使用 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;
许多 MVC 框架都使用这种方法。它被称为路由。
关于php - .htaccess 用于具有多个变量的友好 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12451886/