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

标签 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/

任何帮助将不胜感激。我正在网站上帮助一位 friend (这不是我的),我根本不想让他失望,而且我对正则表达式不太熟悉。

谢谢!

最佳答案

用于重定向

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]

关于php - .htaccess 301 将正则表达式从 DotNetNuke 重定向到 Wordpress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20927702/

相关文章:

php - Woocommerce 仅针对 2 种产品在订单电子邮件中发送 PDF 附件

javascript - Laravel Blade : Parse error: syntax error, 意外 ':' ,预期 '('

php - 如何使用 PHP/apache 访问原始 HTTP 请求数据?

php - 获取刚刚使用 MySQL 插入的行的自动编号 ID

java - 确定一对字符串中的任何一个是否结束另一个字符串

javascript - 我的 WordPress 网站上的 jQuery 脚本均无法正常工作

php - 在 'reading initial communication packet' 处丢失与 MySQL 服务器的连接,系统错误 : 0

python - 从数据框中删除特殊字符和字母数字的简单方法

java - Spring Security 请求匹配器不适用于正则表达式

php - update_option 文本区域包含 html 和 php