2012-02-23 111 views
1

我正在使用此代碼的.htaccess重定向舊域到新域的Apache的.htaccess和Zend重寫衝突:與重定向

Options +FollowSymLinks 
RewriteEngine on 

RewriteCond %{HTTP_HOST} test.domain.eu(.*) 
RewriteRule (.*) http://test.domain.be/$1 [R=301,L] 

這工作,也爲子目錄。但在目錄/項目,有一個Zend項目具有以下的.htaccess:

SetEnv APPLICATION_ENV development 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

當我走在舊域目錄,重定向不起作用。所以我猜這兩個.htaccess文件相互衝突。有沒有人有一個想法如何使這項工作?

回答

2

添加這條規則:

RewriteCond %{HTTP_HOST} test.domain.eu(.*) 
RewriteRule (.*) http://test.domain.be/$1 [R=301,L] 

/project的htaccess的爲好。

當URI請求時,與htaccess的最下的目錄是.htaccess尋找使用&。

致謝:@TerryE

  • /folder/folder1/folder2是請求的URI,並且可以說個個都有.htaccess然後,文件夾2的.htaccess纔會被使用。

  • /folder/folder1/folder2是請求的URI,並讓只能說folder1.htaccess然後,文件夾1的.htaccess纔會被使用。


所以,這樣做:

SetEnv APPLICATION_ENV development 

RewriteEngine On 

RewriteCond %{HTTP_HOST} test.domain.eu 
RewriteRule (.*) http://test.domain.be/project/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 
+0

謝謝,但現在test.domain.eu/project重定向到test.domain.be – Kris 2012-02-23 12:33:34

+0

@Kris我的壞。檢查更新的代碼。 – ThinkingMonkey 2012-02-23 12:38:24

+0

完美,非常感謝! – Kris 2012-02-23 12:41:36