.htaccess перенаправляет и логика путей - PullRequest
0 голосов
/ 16 марта 2012

Я столкнулся с проблемой перенаправления некоторых старых URL-адресов в новые местоположения

Проблемы, связанные с URL, как эти:

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

Проблема была:

Перенаправление первого URL-адреса (1) приведет к перенаправлению второго и третьего URL-адресов (2 и 3) на перенаправление 1) (т. Е. http://domain.com/somecategory/newurl-for-this-page.html)

Я бы хотел понять, почему 2-й и 3-й следовали 1-й директиве?

Временным решением было отказаться от первого перенаправления. Поэтому, когда запрос на очистку старого URL 1, они получат ошибку 404

Есть ли способ решить эту проблему с помощью .htaccess?

Почему это происходит?

Какова логика наличия 3-х URL, которые заканчиваются одним и тем же путем

* * Тысяча двадцать-одиной т.е.

Oneword-ЭТА-PATH.html

twoword-ЭТА-PATH.html

thrreword-THIS-PATH.html

, которые перенаправляются из того же файла .htaccess?

СПАСИБО

1 Ответ

0 голосов
/ 16 марта 2012

Я не использую 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]
...