重定向和重写

时间:2015-09-22 20:10:18

标签: .htaccess mod-rewrite

我不确定是否可以,但我想将旧网址重写为新风格,如果有人访问旧网址,我想将其重定向到新网址样式

旧网址:/ catalog / category / some-category-page

新网址:/ some-category-page / category

我还需要将REQUEST_URI传递给PHP脚本

我有类似的东西,但它不起作用(递归):

RewriteEngine On

RewriteRule ^catalogue/category/(.+)$ /$1/category [R=301,L] # this is bad I know
RewriteRule ^(.+)/category?$ /catalogue/category/$1 [P]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php?modrewrited=%{REQUEST_URI} [QSA,L]

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果您的PHP脚本需要从$_SERVER['REQUEST_URI']读取,则需要确保加载mod_proxy。除了导致重定向循环。您需要有第一个重定向的规则检查实际的请求变量。所以而不是:

RewriteRule ^catalogue/category/(.+)$ /$1/category [R=301,L] # this is bad I know

你想要:

RewriteCond %{THE_REQUEST} \ /+catalogue/category/([^\ \?]+)
RewriteRule ^ /%1/category [L,R=301]