我想从网址中删除.html。为此我正在尝试跟随。但不确定出了什么问题,不能解决我的问题。
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /html/(.*).html\ HTTP/
RewriteRule .* http://localhost/demo/blog/test.html%1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /html/(.*)\ HTTP/
RewriteRule .* %1.html [L]
我想从此网址.html
中删除http://localhost/demo/blog/test.html
。
因此,如果有人输入此网址,则应通过htaccess从网址中删除.html
http://localhost/demo/blog/test/
。
并且只需要为博客目录添加此规则。
我希望有人帮助我。
答案 0 :(得分:1)
试试这个
Options +FollowSymlinks -MultiViews
RewriteEngine on
# to make `/path/index.html` to /path/
RewriteCond %{THE_REQUEST} ^GET\s(.*/)index\.html [NC]
RewriteRule . %1 [NE,R=301,L]
RewriteCond %{THE_REQUEST} ^GET\s.+\.html [NC]
RewriteRule ^(.+)\.html$ /$1 [NE,R=301,L,NC]
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule . %{REQUEST_URI}.html [L]
答案 1 :(得分:0)
应该这样做。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
修改1
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]
编辑3
根据评论中的建议,请确保mod_rewrite
为enabled
。使用this链接来帮助您。
答案 2 :(得分:0)
您可以在/demo/blog/
中使用这些规则:
RewriteEngine On
RewriteBase /demo/blog/
RewriteCond %{THE_REQUEST} \s(.+?)\.html?\s [NC]
RewriteRule ^ %1 [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+?)/?$ $1.html [L]