在受雇于审查旧系统的SEO公司的要求下,我们需要将所有旧URL(下面的示例)从使用“+”更改为“ - ”。系统是动态的,并且没有这些链接存储,但如果这些文章/页面在某处发布,如果以编程方式进行更改,他们担心它看起来像破坏的页面。因此他们希望在htaccess文件中使用301s干净利落地完成它。
旧网址示例:
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]
感谢任何帮助!
答案 0 :(得分:0)
您可以使用此代码:
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]