簡體   English   中英

.htaccess刪除URL擴展,添加尾隨斜杠

[英].htaccess Remove URL Extension, Add Trailing Slash

我一直試圖讓我的客戶端服務器上的這個工作用於我正在開發的網站,但我根本無法讓它工作。 基本上我試圖刪除.html擴展名,並添加一個尾部斜杠(在URL欄中)。

所以如果有人進入:

-example.com/home/ -----------轉到----- example.com/home/

-example.com/home ------------轉到----- example.com/home/

-example.com/home.html ------轉到----- example.com/home/

-example.com/home.html/ -----轉到----- example.com/home/

-example.com/home/.html -----轉到----- example.com/home/

-example.com/home/.html/ ----轉到----- example.com/home/

到目前為止,這是我的.htaccess,它完美地工作,並且做我想做的一切,除了在最后添加尾部斜杠。

這是代碼:

#force www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*) http://www.%{HTTP_HOST}/1 [R=301,L]

# remove .html ONLY if requested directly
RewriteCond %{THE_REQUEST} (\.html\sHTTP/1)
RewriteRule ^(.+)\.html /1 [R=301,L,QSA]

# remove trailing slash ONLY if it is not an existing folder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/ /1 [L,R=301]

# rewrite to FILENAME.html if such file does exist and is not a folder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*) /1.html [L,QSA]

托管在服務器上的所有文件都采用FILENAME.html的形式,位於根目錄中。

所以,如果有人能幫助我,我會非常感激。

修改.htaccess文件並插入以下內容

說明: http//eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/

例:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^/]+)/$ $1.html 

# Forces a trailing slash to be added
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

更新頁面上的鏈接

然后,所有超鏈接,css鏈接,圖像等都需要更新為具有絕對URL( http://www.site.com/style.css )或親戚,並以../開頭。 否則,您將遇到諸如無法加載的CSS,不起作用的鏈接等問題。

暫無
暫無

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

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