-1

例如:

www.site.com/your/blue

将重定向到... www.site.com/your/index.php?=blue

现在,当有人输入 www.site.com/your/blue 时,它​​会抛出一个错误,说页面不存在。谁能帮我这个?先感谢您。

4

2 回答 2

2

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>
于 2012-06-01T13:02:19.783 回答
2

使用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]
于 2012-06-01T12:57:36.237 回答