.htaccess 301将正则表达式从DotNetNuke重定向到Wordpress

时间:2014-01-04 22:48:48

标签: php regex wordpress .htaccess redirect

我正在将旧的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并不满意。

谢谢!

1 个答案:

答案 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]