.htaccess - 重写规则以添加 .html 扩展名

标签 .htaccess redirect

我需要一个规则来添加 .html 扩展名,只要有“不”结尾的斜杠。

一个新客户最近更改了电子商务脚本,新版本以不同的方式处理 SEO,并更改了他们所有 16,000 多个产品链接。这在站点被重新索引之前未被发现,因此我们需要将旧站点重定向到新站点。

所有产品过去都有这样的链接
domain.com/category/productname
但现在
domain.com/category/productname.html

分类链接没变,都是这样
domain.com/category/(带有斜杠)

最佳答案

来自@david-wolever 的答案将所有不以 .html(或根)结尾的内容重定向到具有添加的 .html 扩展名的相同 URL,这意味着它将 .html 扩展名附加到 CSS 和 JavaScripts 文件等内容中,例如它会将/style.css 重定向到/style.css.html 这可能不是您想要的。后面还有空格!可能会导致@greggles 500s 的字符

这会重定向不以点号后跟 3 或 4 个字母数字字符结尾的 URL:

RewriteEngine On
RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{3,4}
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1.html

或者为了更精细的控制,将您不希望 .html 附加到的扩展名列入白名单,例如
RewriteCond %{REQUEST_URI} !\.(html|css|js|less|jpg|png|gif)$

关于.htaccess - 重写规则以添加 .html 扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5745490/

相关文章:

.htaccess - htaccess 从 %{HTTP_HOST} 获取域名到变量中,减去 www

apache - 在状态(200 OK)和某些页面中未显示403代码

javascript - React-router-dom 重定向不适用于 withRouter HOC (react-redux)

javascript - 使用java和html根据当前用户创建重定向链接

.htaccess 限制对文件夹的访问

javascript - HTML5 History API 的 .htaccess 配置

apache - 连续两个简单的 RewriteRule ...但最后的结果很奇怪

python - Django注册打开其他模板

java - 如何在 response.sendRedirect() 之后发送 cookie?

c - 如何将管道命令的输出重定向到文件