2012-11-27 134 views
0

我想將所有請求的文件從文件夾-a重定向到文件夾-b。例如。 http://www.yoursite.com/folder-a/index.phphttp://www.yoursite.com/folder-b/index.php將所有文件從文件夾重寫到另一個文件夾

我該怎麼做?我已經驗證了,如果mod_rewrite的與此代碼的工作:

RewriteEngine On 
RewriteRule ^google.html$ http://www.google.com/ [R=301] 

在網絡空間的結構如下:

.htacces
| -folder-A
| -folder-B

但如果我想我的文件夾重定向

RewriteEngine On 
RewriteRule ^/folder-a/(.*)$ http://www.yoursite.com/folder-b/$1 [L,R=301] 

重定向不起作用,如果我輸入f ollowing網址:

http://www.yoursite.com/folder-a/
http://www.yoursite.com/folder-a/index.php

重定向不會發生。我留在同一頁...我做錯了什麼?我也試過這個htaccess:

Options +FollowSymLinks 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteRule ^folder-a(.*)$ http://www.yoursite.com/folder-b$1 [L,R=301] 

</IfModule> 

如果這一切工作,我想排除一些文件。例如。與此htaccess的:

RedirectPermanent /folder-a/info.php /folder-b/new-info.php 

編輯

現在,我想這htaccess的

redirectMatch 301 ^/folder-a/ http://www.yoursite.com/folder-b 

這工作,但我需要的東西,這需要整個路徑,並重寫到新文件夾。

例如,這不起作用:

RewriteRule ^folder-a/(.*)$ folder-b/$1 

解決方案

我在folder-a所以重定向沒有工作過的老htacess文件。這是我最後的htaccess:

Options +FollowSymLinks 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteRule ^folder-a/excludefile1.php http://www.yoursite.com/folder-b/newnameforfile1.php [L,R=301] 
RewriteRule ^folder-a/excludefile2.php http://www.yoursite.com/folder-b/newnameforfile2.php [L,R=301] 
RewriteRule ^folder-a/(.*)$ http://www.yoursite.com/folder-b/$1 [L,R=301] 

</IfModule> 

回答

2

你可能需要把兩個規則的地方:一個是空文件夾,一個用於其他文件,然後將捕獲所有在底部。這未經測試:

RewriteEngine On 

RewriteRule ^folder-a/info.php http://www.yoursite.com/folder-b/new-info.php [L,R=301] 
RewriteRule ^folder-a/ http://www.yoursite.com/folder-b/ [L,R=301] 
RewriteRule ^folder-a/(.*)$ http://www.yoursite.com/folder-b/$1 [L,R=301] 
+0

感謝您的幫助。我嘗試過,但沒有奏效。我不知道爲什麼。我設置了兩個測試文件夾並在其中放入一個文件。在我的htaccess中,我有以下'RewriteRule^test /(.*)$ http://www.yoursite.com/test2/$1 [L,R = 301]'。此重定向工作。如果我將其適應到我的真實文件夾,它將停止工作... – testing

+0

我發現了錯誤。我的文件夾中有一箇舊的.htaccess-a。這停住了重定向工作。我以爲我刪除了它...順便說一句:我刪除了這個規則'重寫規則^文件夾-a/http://www.yoursite.com/folder-b/ [L,R = 301]'因爲我比重定向到文件夾-b/index.php的。 – testing

相關問題