从 URL + 重定向中删除 .html [重复]

Posted

技术标签:

【中文标题】从 URL + 重定向中删除 .html [重复]【英文标题】:Remove .html from URL + redirect [duplicate] 【发布时间】:2017-05-22 11:55:27 【问题描述】:

我想从 URL 中显示的 URL 中删除 .html 部分。

我能够解决这个问题:

RewriteEngine on
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME\.html -f

这行得通! :)

但现在我得到了每个页面的双 URL

第1页 page1.html 等

我不希望 .html 页面上出现 404 错误,因此我想将其重定向到没有 .html 的页面(301 重定向)。但我不知道在 .htaccess 中这样做

我试过了:

RewriteRule ^(.*)\.html$ /$1 [L,R=301]

但不起作用 --> .html 文件仍然有效

有谁能帮帮我吗? :) 谢谢!

ps。我真的不会写.htaccess,请回答我可以复制粘贴。太多了!

【问题讨论】:

到底发生了什么?什么不是你想要的? 看第二个答案***.com/a/11813084/1741542 这个答案看起来也不错***.com/a/34726322/1741542 【参考方案1】:

试试这个

RewriteEngine On
RewriteBase /
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-l

RewriteRule ^([^\.]+)$ $1.html [NC,L]

ErrorDocument 404 /404 

【讨论】:

以上是关于从 URL + 重定向中删除 .html [重复]的主要内容,如果未能解决你的问题,请参考以下文章

重定向到`Java`中的get方法时如何从url中删除参数[重复]

使用重定向从 URL 中删除 .html

从 url 中删除 'index.html' 并使用一个 301 重定向添加 'www'

从 http 重定向到 https 时,从 url 中删除斜线

发送重定向时强制浏览器从 URL 中删除#hash

nginx 重定向循环,从 url 中删除 index.php