301将所有页面和帖子URL从.html重定向到/

时间:2017-09-24 作者:drifter

我有一个当前站点,其中所有URL都以.html.

我创建了一个新网站,URL几乎相同,但没有.html.

我一直在尝试在我的.htaccess 文件和most似乎会导致内部服务器错误。

http://example.com/page1.html to http://example.com/page1/
http://example.com/page1/page2.html to http://example.com/page1/page2/
我的当前.htaccess 文件代码为:

# 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

1 个回复
SO网友:MrWhite

需要注意的是,当您遇到内部服务器错误(代码500)时,您应该查看服务器的错误日志以了解错误的详细信息。如果你一直在修改mod\\u rewrite.htaccess 那么这可能是从基本语法错误到重写循环的任何内容。

如果你没有.html 然后,您可以无条件重定向以删除.html 在URL的末尾。例如:

RewriteRule (.*)\\.html$ /$1 [R=301,L]
这需要在现有WordPress指令之前执行。

或者,如果您确实有一些.html 然后,需要按原样服务的文件只重定向不映射到现有文件的请求。例如:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)\\.html$ /$1 [R=301,L]
测试之前,您需要清除浏览器缓存。

结束

相关推荐

有关.htaccess和wp-login.php预防的问题

我注意到一个“错误”。我在教程中读到的htaccess规则。我试图做的是阻止访问wp登录。php使用非常常见。htaccess规则如下:<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} ^(.*)?wp-login\\.php(.*)$ [OR] RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ RewriteCond %{REMOTE_A