。
我正在尝试使用 .htaccess 将旧 URL 重写为新 URL,同时将任何请求从旧重定向到新请求。
我的重写规则效果很好,但是当我添加重定向规则时,没有任何反应。
我可以请您查看代码并让我知道需要更改的内容:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^new/page$ /old_page.php?mode=2 [L]
Redirect /old_page.php?mode=2 /new/page
谢谢!
你想要这样的东西:
RewriteCond %{THE_REQUEST} /+old_page.php?mode=2
RewriteRule ^ /new/page? [L,R]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^new/page$ /old_page.php?mode=2 [L]
不能使用Redirect
的两个原因:
- 无法与
Redirect
中的查询字符串匹配
您 - 正在匹配您重写的内容。这将导致重定向循环。
因此,您需要与%{THE_REQUEST}
变量进行匹配。
您还需要在 apache 的标签中设置 AllowOverride All