2015-02-10 79 views
1

除了在子目錄中有一些Wordpress網站(本網站沒有引用)之外,沒有做任何事情,鏈接會自動去除.html結尾。我不知道這是爲什麼,但這是我想要的選項。在.htaccess中強制結尾斜槓不起作用

現在,我無法強制在我的網站中使用斜線。我試過這個選項:

Options -Multiviews 
RewriteCond %{REQUEST_URI} /+[^\.]+$ 
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] 

我目前還使用了404頁(參考404.html):

ErrorDocument 404 /404 

但是,試圖訪問一個頁面,如http://bluecocoa.com/time/的時候,我得到了一個重定向無限循環錯誤。我使用http://redirectdetective.com追蹤重定向。我發現重定向是這樣的:

http://bluecocoa.com/time --> http://bluecocoa.com/time/ --> http://bluecocoa.com/404 --> http://bluecocoa.com/404/ --> http://bluecocoa.com/404 --> http://bluecocoa.com/404/ --> infinite loop 

對我來說,它看起來像它通過增加一個固定的頁面沒有結尾的斜線。出於某種原因,找不到具有結尾斜槓的頁面,並重定向到404。404導致無限重定向。

我的網站目錄如下:

index.html 
time.html 
/mtc/ [a wordpress directory] 
/posts/ 
blog.html 
etc... 

在解決這些問題的任何幫助將不勝感激!

+0

是'/時間/'也是一個目錄? – 2015-02-10 01:56:37

+0

@JonLin不,這是一個.html文件 – 2015-02-10 01:57:20

+0

你是什麼規則添加.html? – 2015-02-10 02:28:46

回答

1

有這些規則隱藏.html擴展在你的根.htaccess

Options -MultiViews 
RewriteEngine On 
RewriteBase/

# To externally redirect file.html to /file/ 
RewriteCond %{THE_REQUEST} \s/+(.+?)\.html[\s?] [NC] 
RewriteRule^/%1/ [R=302,L,NE] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=302,NE,L] 

# To internally forward /file to /file.html 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.html -f [NC] 
RewriteRule ^(.+?)/?$ $1.html [L] 
+1

完美的工作!但仍然有一個問題。我有我的CSS文件和圖像引用像這樣:'css/style.css'。當我加入你的調整,一切都完美的作品,除了圖像和CSS和JavaScript都是斷開的鏈接。有什麼想法嗎? – 2015-02-10 13:03:12

+1

要解決該問題,請在頁面的HTML:''的''部分中添加此項,以便每個相對URL都從該URL解析而不是當前頁面的URL。 – anubhava 2015-02-10 13:57:35