2015-01-26 41 views
1

我想用舊的URL重寫一個新的.htaccess,並在同一時間重定向到舊的任何請求。.htaccess重定向規則不起作用(沒有任何反應)當與rewirite規則一起使用

我的重寫規則很好,但是當我添加一個重定向規則時,什麼都不會發生。

我可以問你尋找到的代碼,讓我知道需要改變什麼:

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

你想是這樣的:

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. 你對陣的查詢字符串匹配你改寫的內容。這將導致重定向循環。

因此,您需要匹配%{THE_REQUEST}變量。

+0

感謝您的工作代碼和它的解釋。現在我知道我錯了。再次感謝! – BradG 2015-01-26 22:07:51

0

您還需要在您的標記中設置AllowOverride All在apache