我在子目录domain.com/blog/中安装了Wordpress 结尾斜杠的问题,Wordpress帖子为两个版本提供200 OK http:domain.com/blog/post-name和domain.com/blog/post-name /
我想在结尾处强制尾随斜杠,并在结尾处将301从非斜杠重定向到尾随斜杠
所以尾随斜杠版本仅提供200 OK
我的代码
# Force Trailing Slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^/]+$ %{REQUEST_URI}/ [L,R=301]
答案 0 :(得分:0)
代码的问题出在正则表达式:^ [^ /] + $
此正则表达式匹配每个字符串而没有任何斜杠,因此像domain.com/blog这样的字符串将不匹配。实现目标的最佳方式如下:
# Force Trailing Slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^(.*)[^/]{1}$
RewriteRule (.*) $1/ [L,R=301]
如果您使用默认的wordpress htaccess file,您应该这样做:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Force Trailing Slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^(.*)[^/]{1}$
RewriteRule (.*) $1/ [L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress