我遇到了将一些旧网址重定向到新网址的问题
问题包括这些网址:
1) RedirectMatch permanent THISWORD-THIS-WORD.html http://domain.com/somecategory/newurl-for-this-page.html
2) RedirectMatch permanent someurl-THISWORD-THIS-WORD.html http://domain.com
3) RedirectMatch permanent anotherurl-THISWORD-THIS-WORD.html http://domain.com/new-anotherurl.html
问题是:
重定向第一个网址(1)会导致seond和第三个网址(2和3)重定向到1)重定向(即http://domain.com/somecategory/newurl-for-this-page.html)
我想了解为什么第二和第三次遵循第一条指令?
临时解决方案是放弃第一次重定向。所以当一个cleint请求旧的url 1时,他们会得到404错误
有没有办法通过.htaccess来解决这个问题?
为什么会这样?
让3个网址以相同路径结束的逻辑是什么
即
oneword-THIS-PATH.html
twoword-THIS-PATH.html
thrreword-THIS-PATH.html
是从同一个.htaccess文件重定向的?
谢谢你
答案 0 :(得分:0)
我不使用RedirectMatch。
试试这个
RewriteCond %{REQUEST_URI} ^.*/THISWORD-THIS-WORD.html
RewriteRule ^http://domain.com/somecategory/newurl-for-this-page.html [R=301,L]
RewriteCond %{REQUEST_URI} ^.*/someurl-THISWORD-THIS-WORD.html
RewriteRule ^http://domain.com [R=301,L]
RewriteCond %{REQUEST_URI} ^.*/anotherurl-THISWORD-THIS-WORD.html
RewriteRule ^http://domain.com/new-anotherurl.html [R=301,L]