你有任何想法如何從靜態頁面的URL中去除.html。另外,我需要將.html的任何網址重定向到沒有網址的網址(即www.example.com/page.html到www.example.com/page)。如何從URL去除.html
回答
感謝您的回覆。我已經解決了我的問題。假設我有我的網頁http://www.yoursite.com/html,以下.htaccess規則適用。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /html/(.*).html\ HTTP/
RewriteRule .* http://localhost/html/%1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /html/(.*)\ HTTP/
RewriteRule .* %1.html [L]
</IfModule>
隨着apache下的.htaccess你可以做這樣的重定向:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
至於從URL的.html去除,只需鏈接到頁面,而不html的
<a href="http://www.example.com/page">page</a>
這對我無能爲力。有沒有理由不起作用? – 2014-02-02 04:02:45
RewriteRule /(.+)(\.html)$ /$1 [R=301,L]
試試這個:)不知道它是否有效。
我用這個.htacess從我的網址網站中刪除的.html extantion,請確認這是正確的代碼:
RewriteEngine on
RewriteBase/
RewriteCond %{http://www.proofers.co.uk/new} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) /$1.html [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ http://www.proofers.co.uk/new/$1 [R=301,L]
這應該爲你工作:
#example.com/page will display the contents of example.com/page.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]
#301 from example.com/page.html to example.com/page
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]
我在這個代碼中得到了一個404 Godaddy,我修正了它:Options + FollowSymLinks -MultiViews -Indexes在最上面。 – Labanino 2014-02-13 13:10:24
它的工作..真棒。 – 2016-05-01 11:26:21
這對我來說... thnx – 2016-05-19 05:50:32
你還需要確保你有Options -MultiViews
。
以上都不是標準cPanel主機上的工作。
這工作:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
我覺得喬恩的答案的一些解釋將是建設性的。以下:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
檢查,如果指定的文件或目錄分別不存在,則重寫規則進行:
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
但到底是什麼意思呢?它使用regex (regular expressions)。這裏有一點我早些時候做的...
我認爲這是正確的。
注意:當測試您的.htaccess
不要使用301重定向。使用302直到完成測試,因爲瀏覽器將緩存301s。見https://stackoverflow.com/a/9204355/3217306
更新:我有點誤,.
匹配除了換行符以外的所有字符,所以包括空格。此外,here is a helpful regex cheat sheet
來源:
http://community.sitepoint.com/t/what-does-this-mean-rewritecond-request-filename-f-d/2034/2
https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules
要從網址中刪除.html擴展,你可以在根/ htaccess的使用下面的代碼:
RewriteEngine on
RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule^/%1 [NC,L,R]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule^%{REQUEST_URI}.html [NC,L]
注意:如果您想刪除任何其他擴展名,例如刪除.php擴展名,只需替換e html無處不在php在上面的代碼中。
- 1. 如何從url中刪除index.php/html
- 2. 如何從CRLF除去CR
- 3. 如何使用PHPQuery去除HTML標籤?
- 4. 如何使用preg_replace去除所有html?
- 5. 如何使用HTML DOM去除元素?
- 6. 如何在sphinx屬性中去除html?
- 7. 如何使用URL重寫從URI中去除index.php?
- 8. 如何僅從文件中的URL中去除&符號?
- 9. 如何從URL中去除查詢(用於GET參數)?
- 10. 從字符串去除HTML Ruby on Rails
- 11. 從SQL結果中去除Html標籤
- 12. 如何從Java和Html字符串中去除文本
- 13. 如何從django中的文本輸入中去除html/javascript
- 14. 如何從html文檔中去除空白
- 15. Java:如何從HTML標籤中去除文本內容?
- 16. 如何從Qt4小部件的文本屬性中去除HTML?
- 17. 如何從電子郵件中去除HTML和附件?
- 18. 如何使用Javascript/jQuery從div內容中去除HTML標籤?
- 19. 如何從c中的字符串中去除html代碼#
- 20. 如何從Drupal視圖的字段中去除HTML
- 21. 如何從Gulp.js中去除HTML中的評論?
- 22. 如何從HTML提取URL
- 23. 如何去除
- 24. 如何去除去Android
- 25. 如何刪除amp;從URL
- 26. 如何刪除域=從URL
- 27. 如何消除URL末尾的.html?
- 28. 如何從HTML中除去特殊標記除外的所有內容?
- 29. 如何去除WF7
- 30. $ _ POST帶去除的html
也許與正則表達式? – 2011-04-20 12:18:42
通過「刪除.html」,你的意思是「不需要.html存在」? – 2011-04-20 12:26:37
@Tomalak:是的,也可以將「.html」的網址重定向到沒有鏈接的網址。我的問題是,這導致無限重定向。我目前的設置允許www.example.com/page.html和www.example.com/page都可訪問,這不是SEO友好的。 – Dave 2011-04-20 22:55:23