3

我正在努力使我的网站对我目前使用的 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/...

4

1 回答 1

8

仅使用:

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 框架使用这种方法。它称为路由。

于 2012-09-17T00:40:50.613 回答