与重写规则一起使用时,.htaccess重定向规则不起作用(没有任何反应)

时间:2015-01-26 21:40:38

标签: php .htaccess mod-rewrite redirect

我正在尝试使用.htaccess将旧网址重写为新网址,同时将旧网址重定向到新网址。

我的重写规则很有效但是当我添加重定向规则时没有任何反应。

我可以请您查看代码并让我知道需要更改的内容:

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

谢谢!

2 个答案:

答案 0 :(得分:2)

你想要这样的东西:

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的两个原因:

  1. 您无法与Redirect
  2. 中的查询字符串进行匹配
  3. 你匹配你重写的内容。这将导致重定向循环。
  4. 所以你需要改为匹配%{THE_REQUEST}变量。

答案 1 :(得分:0)

您还需要在apache中的标记中设置AllowOverride All