Php 重定向301代码点火器工作不正常

Php 重定向301代码点火器工作不正常,php,.htaccess,redirect,Php,.htaccess,Redirect,我有两个地方的链接 链接1: 链接2: 我想将链接1永久重定向到链接2。所有带有空格和连字符的URL 尝试了以下代码。但不起作用。它将index.php放在url中 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

我有两个地方的链接

链接1: 链接2:

我想将链接1永久重定向到链接2。所有带有空格和连字符的URL

尝试了以下代码。但不起作用。它将index.php放在url中

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]
注:项目在codeigniter中

完整的.htaccess代码

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

RewriteCond %{HTTP_HOST} !^(.*)\.myhappyjourney\.com$ [NC] 
RewriteRule ^(.*)$ http://www.myhappyjourney.com/$1 [R=301,L]

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]

您可以对空格使用此规则来连字符重定向:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule "^(\S*)\s+(\S*\s.*)$" $1-$2 [N]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule "^(\S*)\s(\S*)$" /$1-$2 [L,R=301]

RewriteCond %{HTTP_HOST} !^(.*)\.myhappyjourney\.com$ [NC] 
RewriteRule ^(.*)$ http://www.myhappyjourney.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

它正在工作。但它将index.php放在url中。这也是以前代码的问题。面临一个问题。它也正在替换图像URL。e、 g.Rae Bareli.jpg到Rae-Bareli.jpg(我不想要)。有什么解决办法吗?