mod_rewrite将复杂的旧URL重定向到新的URL

时间:2018-02-14 08:24:28

标签: apache .htaccess redirect mod-rewrite

我有一个复杂的网址,旧网站曾用于特定网页。在新的,更新的网站中,这个URL变得更短,更简单(事实上,旧的不再存在)。我尝试将旧网址重定向,当在浏览器中输入或从电子邮件链接到新的,更短且实际存在的网址时。

我已经尝试了无数的事情,但我对mod_rewrite相关的一切都非常糟糕。不用说,我试图在我的.htaccess文件中执行此操作。

旧网址: www.domain.com/Event.211.0.html?&tx_calendar_pi1%5Bf1%5D=1061&tx_calendar_pi1%5Bf4%5D=1519102800&cHash=b884377a19d2bc32558d8c3ae232bedf

新网址: www.domain.com/events/februarypowerlunch /

任何建议,任何人?

1 个答案:

答案 0 :(得分:2)

请尝试以下代码:

RewriteEngine On 
RewriteCond %{REQUEST_URI}  !^/events/februarypowerlunch/
RewriteCond %{THE_REQUEST} ^(.*)\?(.*)\%(.*)\%(.*)=(.*)\%(.*)\%(.*)$ 
RewriteRule ^     /events/februarypowerlunch/?  [R=302,L]

如果状态正常,请使用302更改301以获得永久重定向。

更新:

如果您只想匹配Event.211.0.html,请执行以下操作:

RewriteEngine On 
RewriteCond %{REQUEST_URI}  !^/events/februarypowerlunch/
RewriteRule ^(e|E)vent\.211\.0\.html    /events/februarypowerlunch/?  [R=301,L]