.htaccess规则导致/ page / if /page.[ext]出现404错误

时间:2016-09-25 03:38:21

标签: regex wordpress .htaccess mod-rewrite

问题:与/ page /存在相同的URL,但有一些文件扩展名,即/page.xml,导致404 / for / page /。

例如,如果存在example.com/sitemap.xml,我的HTML站点地图example.com/sitemap将为404。

我的Wordpress网站的.htaccess文件包含重写条件,按照预期,会以example.com/page格式向页面附加一个尾部斜杠,以便将它们重写为example.com/page /.

.htaccess如下:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://example.com%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)([^/])$ /$1$2/ [L,R=301]

# 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

# BEGIN MainWP
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-content/plugins/mainwp-child/(.*)$ /wp-content/plugins/THIS_PLUGIN_DOES_NOT_EXIST [QSA,L]
</IfModule>
# END MainWP

1 个答案:

答案 0 :(得分:0)

所以经过一番挖掘,我找到了解决方案,就是在我的.htaccess文件中禁用Multiviews,如下所示:

Options -MultiViews