WordPress 301将空格重定向到连字符

时间:2013-08-18 04:36:56

标签: wordpress redirect http-status-code-301

我的.htaccess文件中有以下内容:

 # BEGIN WordPress
 <IfModule mod_rewrite.c>
 Options +FollowSymlinks -MultiViews
 RewriteEngine On
 RewriteBase /entertainment/
 RewriteCond %{THE_REQUEST} (\s|%20)
 RewriteRule ^([^\s%20]+)(?:\s|%20)+([^\s%20]+)((?:\s|%20)+.*)$ $1-$2$3 [N,DPI]
 RewriteRule ^([^\s%20]+)(?:\s|%20)+(.*)$ /$1-$2 [L,R=301,DPI]
 RewriteRule ^index\.php$ - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /entertainment/index.php [L]
 </IfModule>

 # END WordPress

问题是domain.com/entertainment/testing 1 /重定向到domain.com/testing-1而不是domain.com/entertainment/testing-1/。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

使用的[DPI]标志表示丢弃路径信息。因此,重写基础没有生效。使用

RewriteRule ^([^\s%20]+)(?:\s|%20)+(.*)$ /$1-$2 [L,R=301]

或者,将目录名称附加到重写规则

RewriteRule ^([^\s%20]+)(?:\s|%20)+(.*)$ /entertainment/$1-$2 [L,R=301,DPI]