2012-01-20 155 views
1

我正面臨着我試圖部署的網站的問題。該網站在我的開發主機上正常工作,但未能部署。兩個主機都有非常相似的配置,都是Ubuntu Linux發行版(dev:11.10,deploy:10.04),都使用apache2等。Apache DirectorySlash似乎不能正常工作

兩個站點都啓用了mod_dir,但部署似乎不添加尾部斜線到目錄名稱,而開發人員。所以,當我進入這個URL(除去HTTP避免愚蠢的計算器反垃圾郵件過濾):

devel.mydomain.com/admin

開發主機重定向到:

devel.mydomain.com/admin/

部署http://mydomain.com/admin未被重定向到mydomain.com/admin/,原因不明,我以404錯誤結束。當然,如果我輸入mydomain.com/admin/,手動添加尾部斜線,它會按預期工作。但我更喜歡重定向mydomain.com/adminmydomain.com/admin/

問題是爲什麼在devel中mod_dir似乎在做重定向,在部署中它沒有。

我已經在配置文件中做了一個grep來查看DirectorySlash指令是否在某處被禁用,什麼也沒有發現。它沒有明確啓用devel,所以我認爲它應該在默認情況下。無論如何,我補充這對我的.htaccess文件部署主機上:

DirectorySlash上​​

但它沒有工作也沒有。

任何提示?

回答

0

/admin文件夾受密碼保護。我不認爲這是相關的,但實際上是這樣。

我也有我的.htaccess文件下列規則:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l 
    RewriteRule .* index.php [L] 
    </IfModule> 

的問題與this - 看到here一個很好的解釋。

基本上,當Apache生成一個401錯誤來要求瀏覽器輸入密碼時,它還會生成另一個不使用任何文件夾,目錄或符號鏈接的請求,因此它被重定向到index.php

解決方法是將它添加到.htaccess文件在站點根文件夾:

ErrorDocument 401 /error/null.html 
ErrorDocument 403 /error/null.html 

,並創建一個文件,例如像這樣:

touch ./error/null.html 

這些都不是最佳實踐但當我尋找更好的解決方案時,他們會做。

相關問題