我正在努力使我的网站更加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/...
答案 0 :(得分:7)
只使用:
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框架都使用此方法。它叫做路由。