例如:
www.site.com/your/blue
将重定向到... www.site.com/your/index.php?=blue
现在,当有人输入 www.site.com/your/blue 时,它会抛出一个错误,说页面不存在。谁能帮我这个?先感谢您。
Mod rewrite 必须用于这种重定向:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/?$ $1/index.php?page=$2 [L]
</IfModule>
此正则表达式可确保将干净的 url 传递给站点,并且可以使用或不使用结尾斜杠。
注意:传递给 PHP 的参数需要有一个名称,所以我添加了 page=
如果您希望它不受任何限制地工作(空格会起作用)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([^/]+)/([^/]+)/?$ $1/index.php?page=$2 [L]
</IfModule>
使用mod 重写:
RewriteEngine On
RewriteRule ^(.*)/(.*)/$ $1/index.php?p=$2 [L]
(我添加p
为查询字符串的名称,因为它不能为空)
此外,您可以在重写规则之间添加以下代码行,RewriteEngine On
以确保尾部有斜杠(推荐):
# Add trailing slash
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ http://www.site.com/$1/ [R=301,L]