簡體   English   中英

沒有文件擴展名的Apache

[英]apache without file extensions

我在Ubuntu計算機上設置了Apache服務器。 我最近更新了機器,並從頭開始重新安裝了Apache(盡管我備份了配置文件)。 在更新之前,我可以在example.com/folder/example上訪問文件/var/www/folder/example.html ,但現在將其鍵入到服務器鏈接中,指向文件/var/www/folder/example/index.html不存在,因此出現404錯誤。 如果我輸入有效的直接路徑( example.com/folder/example.html ),但最后不要沒有.html 有沒有一種方法可以重新配置Apache,使其像以前一樣工作?

您可能在使用“ example.html”文件的同一目錄中有一個“ example”文件夾時遇到了問題。 您應該刪除/重命名文件夾,或者可以在apache2.conf或.htaccess文件中放入類似內容。

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

編輯:您需要做為@julp在他的評論中建議。 使用MultiViews將允許具有不同的文件擴展名,並且僅調用文件的基本名稱。 Ba意識到在文件夾中具有唯一的基名是明智的。 另外,必須為每個文件夾設置MultiView設置。 進一步看一下談判

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

.htaccess文件應如下所示:

Options +FollowSymLinks -MultiViews
#
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php
RewriteRule ^ %1 [R=302,L]
#
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

如果運行的是Apache2或類似引擎,請確保允許在其conf文件中進行覆蓋。

這是設置conf的很好的教程。

讓我知道這是否對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM