Apache htaccess RewriteRule to change "+" for "-"



应受雇审查旧系统的SEO公司的要求,我们需要将所有旧url(下面的示例)从使用"+"更改为"-"。系统是动态的,这些链接都不被存储,但他们担心如果这些文章/页面被发布到某个地方,如果以编程方式进行更改,它看起来像破碎的页面。所以他们希望在htaccess文件中使用301来使它更干净。

旧url示例:

domain.com/Articles/Charter+Day+in+PA/
domain.com/Things+To+Do/
domain.com/Search/Things+To+Do/
domain.com/things+to+do/Brandywine+River+Museum/
to:
domain.com/Articles/Charter-Day-in-PA/
domain.com/Things-To-Do/
domain.com/Search/Things-To-Do/
domain.com/things-to-do/Brandywine-River-Museum/
因此,我在htaccess文件中放置了以下内容,但它似乎不起作用:
RewriteEngine on
RewriteRule ^(.*?)+(.*?[^+]*?+.*)$ $1-$2 [N]
RewriteRule ^(.*?)+(.*?[^+]*)$ $1-$2 [R=301]
RewriteCond %{HTTP_HOST} !^www
RewriteRule (.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

任何帮助都是感激的!

您可以使用以下代码:

RewriteEngine on
RewriteRule "^([^+]*)++([^+]*+.*)$" /$1-$2 [L]
RewriteRule "^([^+]*)+([^+]*)$" $1-$2 [L,R=301]
RewriteCond %{HTTP_HOST} !^www
RewriteRule (.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

最新更新