2013-09-27 88 views
1

我正在嘗試重寫,以便您可以訪問沒有.html的文件並且不需要添加尾部斜槓。這裏的正在使用的代碼:.htaccess刪除.html文件/目錄優先級重寫

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^(.*?)/?$ 
RewriteCond %{DOCUMENT_ROOT}/%1.html -f 
RewriteRule ^(.*?)/?$ $1.html 

但在那裏我有這樣的服務器上我的文件結構:

/public_html 
      .. 
      /beginners 
      beginners.html 

和內部/文件夾初學者有其他文件,如

  /beginners/page1.html 

我需要重寫這樣的工作:

如果用戶輸入網址: website.com/beginners - 服務器將返回 文件beginners.html的內容,目前它返回目錄/beginners的內容。所以我需要服務器首先檢查是否beginners.html存在,如果是的話 - 那麼服務器供應beginners.html不是目錄/beginners

如果用戶訪問的URL website.com/beginners/page1服務器應該首先檢查了,如果 page1.html存在於文件夾初學者,如果找到文件page1.html然後它提供文件的內容page1.html

這怎麼可以做到?

+0

所以'/初學者/' - 這是否返回目錄,或'/ beginners.html'? – FrankieTheKneeMan

+0

實際上,你似乎只需要擺脫第一個重寫條件 - 它指定了URI沒有指向一個目錄。 – FrankieTheKneeMan

+0

@FrankieTheKneeMan/beginners /會返回目錄 – Dan

回答

4

下面是做它的.htaccess:

Options +FollowSymLinks -MultiViews -Indexes 
DirectorySlash Off 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} ^(.*?)/?$ 
RewriteCond %{DOCUMENT_ROOT}/%1.html -f 
RewriteRule ^(.*?)/?$ $1.html