2010-06-18 95 views
3

我正在使用一個模塊重寫的漂亮的URL,意味着在域根上運行。工作正常,但現在我試圖讓它在一個子域上運行,並一直給出「500內部服務器錯誤」。mod-rewrite忽略子域

的子域自動重定向到文件夾使用該名稱在我的託管帳戶(sub.domain.com顯示domain.com/sub/內容)。它是否失敗,因爲這個請求已經被自動改寫,或者我可以簡單地改變htaccess中的某些內容來代替子域名?

Options +FollowSymLinks 
IndexIgnore */* 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php 
+0

這些規則應該如何做你聲稱你想要做什麼? – Artefacto 2010-06-18 16:19:50

+0

他們發送所有的請求,如「domain.com/what/ever/」回到index.php,我可以提取「what」和「ever」作爲變量。當沒有子域時,它工作正常,但我堅持讓它忽略子域。 – Berend 2010-06-18 16:42:54

+1

這裏有很多配置丟失。這條規則不足以做到你說的那樣。 – 2012-05-11 15:01:40

回答

0

聯繫您的ISP並檢查它們是否設置的DocumentRoot的子域到/域/子/目錄(這是可能的),或者使用內部重寫規則將流量導向到該目錄(你可以通過Chrome或Firefox + Firebug查看是否存在外部重寫/重定向,使用開發人員工具檢查網絡Tab中的響應標題)。如果他們設置了文檔根目錄,則需要複製或符號鏈接ALL您想要通過子域訪問的文件到/domain.com/sub/目錄,例如.htaccess,index.php,images,jscss文件和子目錄。如果他們正在使用內部重寫,那麼在現有的.htaccess文件中對自己現有的內部重寫進行快速調整就足夠了。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L]