例如:
www.site.com/your/blue
将重定向到... www.site.com/your/index.php?=blue
现在当有人在www.site.com/your/blue中输入时,它会抛出一个错误,指出页面不存在。 谁能帮我这个?提前谢谢你。
答案 0 :(得分:2)
使用mod rewrite:
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]
答案 1 :(得分:2)
必须将Mod重写用于此类重定向:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/?$ $1/index.php?page=$2 [L]
</IfModule>
此正则表达式可确保将干净的网址传递到网站,并使用或不使用结束斜杠。
注意:传递给PHP的参数需要有一个名称,所以我添加了page =
如果您希望它在没有任何限制的情况下工作(空格可以使用)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([^/]+)/([^/]+)/?$ $1/index.php?page=$2 [L]
</IfModule>