使用 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 (将#修改为@)