如何设置301重定向以去除.html文件扩展名?

时间:2014-01-17 23:37:32

标签: regex wordpress apache .htaccess mod-rewrite

我正在努力将MovableType博客迁移到Wordpress。

所有旧的帖子都以.html结尾。

示例:

http://ec2-174-129-85-183.compute-1.amazonaws.com/archives/2013/12/all_quiet_on_th.html

但是,当我更新wordpress中的帖子名称以包含.html扩展名时,我一直收到404错误。

所以我现在要做的是将以.html结尾的所有页面请求重定向到相同的页面但没有.html。

例如:

.../archives/2013/12/all_quiet_on_th.html

301会重定向到:

.../archives/2013/12/all_quiet_on_th

这是我当前的.htaccess文件:

# BEGIN WordPress

# Ensure the rewriet module is loaded
<IfModule mod_rewrite.c>
# enable the rewrite engine
RewriteEngine On
# Set the root directory
RewriteBase /

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

请告知我可以对此文件进行哪些更改以使其正常工作?

我已经在互联网上尝试了5或6个不同版本,但它不起作用,我不知道为什么不这样做。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下规则:

# BEGIN WordPress

# Ensure the rewriet module is loaded
<IfModule mod_rewrite.c>
# enable the rewrite engine
RewriteEngine On
# Set the root directory
RewriteBase /

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

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress