我正在将旧的DotNetNuke网站移动到Wordpress,虽然旧网站是非常糟糕的架构和定期崩溃 - 该网站有相当数量的SEO信誉。所以,我不想失去任何东西,但正则表达式正在杀死我。基于.htaccess的301重定向。
以下是旧域名帖子的示例:
http://yoursite.com/tabid/57/listid/4379/Home++Garden/Life+in+Shambles+How+to+Be+Organized.aspx
以下是新的外观:
http://newsite.com/tgesting-new-functionality/
非常感谢任何帮助。我正在网站上帮助一位朋友(这不是我的),而且我根本不想让他退缩,我对RegExs并不满意。
谢谢!
答案 0 :(得分:2)
重定向
http://yoursite.com/tabid/57/listid/4379/Home++Garden/Life+in+Shambles+How+to+Be+Organized.aspx
到
http://newsite.com/life-in-shambles-how-to-be-organized/
您必须在虚拟主机配置中设置服务器配置
RewriteMap lowercase int:tolower
在.htaccess
文件中
RewriteEngine On
RewriteRule ^([^+]*)\+(.*)$ $1-$2 [L]
RewriteCond "%{REQUEST_URI}" "[A-Z]"
RewriteRule "(.*)" "${lowercase:$1}" [NC]
RewriteRule /([^/+]+)\.aspx http://newsite.com/$1/ [R=301,L]
RewriteMap
指令定义了一个可以在规则替换中使用的重写映射。
RewriteRule ^([^+]*)\+(.*)$ $1-$2 [L]
全部替换+ - -
RewriteRule "(.*)" "${lowercase:$1}" [NC]
转换为小写
RewriteRule /([^/+]+)\.aspx http://newsite.com/$1/ [R=301,L]
执行重定向
如果您需要更换连续+,只需使用RewriteRule ^([^+]*)[+]+(.*)$ $1-$2 [L]
代替RewriteRule ^([^+]*)\+(.*)$ $1-$2 [L]