0
我有一個帶有html文件的靜態網站,我想在沒有.html結尾和尾部斜槓的情況下調用它們。.htaccess刪除.html擴展名並添加尾部斜槓並禁止.html文件
例如:
www.test.com/test.html
應該可以下
www.test.com/test/
我管理這個具有以下的.htaccess
Options -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^\.]+)/$ $1.html
不過的URL引線的兩個版本相同頁。我如何重定向(沒有.html)或爲.html版本扔404?
www.test.com/test.html
這是帶有斜線的工作解決方案。謝謝@arkascha!
Options -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^/?(.+)\.html$ /$1/ [R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^\.]+)/$ $1.html [END]
我已經試過了。這不起作用,因爲它以無限循環結束。 (第五行尾部的斜線缺失:RewriteRule^/?(。+)\。html $/$ 1/[R = 301]) –
我沒有看到上面的規則集應該如何在無盡的重寫循環中結束..當然你沒有嘗試過類似的東西?關於該尾隨斜線:添加這樣的斜槓是很少見的,這就是爲什麼我將它遺漏出去的原因...... – arkascha
我複製了您的代碼1:1,並且谷歌瀏覽器以ERR_TOO_MANY_REDIRECTS結尾。我用不同的瀏覽器和電腦試過了。嘗試一下,你會遇到同樣的問題。 –