微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 htaccess 迁移到 WordPress 后,将所有 .html 页面重写为没有扩展名的页面

如何解决使用 htaccess 迁移到 WordPress 后,将所有 .html 页面重写为没有扩展名的页面

我们刚刚将 html 网站转移到 wordpress 版本。原始文件名都附加了 .html。现在自从迁移到 wordpress,我们所有的旧页面都是 404'ing。

// Ex:
about.html
contact.html

我一直在寻找一个 .htaccess 规则,它允许我查找带有 .html 扩展名的页面重定向到非 html 版本,例如:

about.html --> about/
contact.html --> contact/

我一定在我的 .htaccess 文件中尝试了至少六个代码片段,但是当我硬刷新页面时,它们似乎都没有效果

示例包括

# Ex. 1
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html [NC,L]

# Ex. 2
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301] 

# Ex. 3
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]

我的当前 .htaccess 文件具有标准的 wordpress 代码块:

# Code from a Security plugin
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
</IfModule>

# BEGIN wordpress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.PHP$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.PHP [L]
</IfModule>
# END wordpress

诚然,我不是 Apache 和 .htaccess 文件方面的专家,我一直在急于寻找工作代码,因为我的时间有点紧张。

谢谢,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。