2010-09-21 73 views
0

我在godaddy託管的兩個htaccess文件有問題。我在同一個託管多個域,因此我USEN htaccess的,我發現,哪些是偉大的工作:htaccess重寫錯誤

RewriteEngine On 
RewriteBase/

# To redirect www.site1.com to /site1/ 
RewriteCond %{REQUEST_URI} !^/site1/ 
RewriteCond %{HTTP_HOST} ^(www\.)?site1\.www\. 
RewriteRule ^(.*)$ site1/$1 [L] 

這是偉大的,因爲它重定向誰去是site1.com到/ site1的/我有頁爲該目錄中的site1。事實上,我有這三個其他域名,他們工作得很好(該文件夾隱藏在網址欄中)。

我的問題是,我添加了一個新的域(site2.com),這是一個Zend應用程序。因此它有它自己的htaccess來重寫url(用於以更好的方式在url中傳遞參數)。對於這一個它不起作用。事實上,我被重定向回到/,並且我得到了一個沒有人應該能夠獲得的/index.html頁面。只是要注意:在Zend應用程序的根目錄是 'WWW':

第二htacess,內/ SITE2/www是

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命令不是相對路徑嗎?爲什麼它回到兩個級別(請記住它在/ site2/www和我得到的文件是在/index.php(測試))

回答

0

它不是相對它尊重你從上層RewriteBase其中/ ...只要把 htaccess的下站點2

RewriteBase /site2/ 
+0

其實我有這竟然是一個在這種情況下另一個錯誤:在第二的RewriteCond第一htaccess文件指向www \。這是因爲zend公共網站的www文件夾而添加的。這是錯誤的(我不完全知道如何以及爲什麼),但是這個規則沒有被應用,這就是爲什麼我在/上得到索引。 www將被添加到RewriteRule中。修復它:)謝謝無論如何。 – 2010-09-22 18:43:42