2013-10-23 213 views
0

我有一臺Apache服務器設置在我的Ubuntu機器上。我最近更新了我的機器並從頭開始重新安裝了Apache(儘管我備份了我的配置文件)。在我更新之前,我能夠訪問/var/www/folder/example.htmlexample.com/folder/example文件,但現在將其鍵入我的服務器鏈接到文件/var/www/folder/example/index.html,該文件不存在,因此我收到404錯誤。如果我輸入的是直接路徑(example.com/folder/example.html),但不是在末尾沒有.html。有沒有辦法重新配置Apache,使其像以前一樣工作?apache沒有文件擴展名

+0

你記得備份隱藏'.htaccess'文件? –

+0

我沒有使用任何'htaccess'文件..我只是在'apache2.conf'文件中配置了所有文件 – gr3co

+1

[Content negociation](http://httpd.apache.org/docs/2.4/mod/mod_negotiation.html )現在禁用?嘗試在'Options'行添加'MultiViews'(確保首先編譯或加載了mod_negociation)。 – julp

回答

0

如果您在「example.html」文件所在的同一個目錄中擁有文件夾「example」,則可能存在問題。 要麼你應該刪除/重命名文件夾,或者你可以把這樣的東西放在你的apache2.conf或.htaccess文件中。

RewriteEngine On 
RewriteCond %{REQUEST_URI} ! \.html$ 
RewriteRule ^(.*)$ $1.html 

編輯: 你需要做他的評論@ julp建議。使用MultiViews將允許具有不同的文件擴展名並僅調用文件基本名稱。巴知道,在你的文件夾中有獨特的基名是明智的。 另外,必須爲每個文件夾設置MultiView設置。 有在negotiation進一步看:

http://httpd.apache.org/docs/2.2/content-negotiation.html#negotiation

+0

雖然我沒有文件夾'示例'。我只是說這就是Apache可能在尋找文件的地方。該重寫規則會不會自動爲每個URL添加'.html'?我還有其他我想訪問的文件類型,但默認情況下(不帶擴展名),它應該訪問'.php'或'.html'文件(它們都沒有相同的名稱) – gr3co