alden80

Рейтинг
13
Регистрация
02.06.2017
Sitealert:
Что Вас не устраивает?

Все получилось, спасибо. Обнаружился javascript-код который делал эту аномалию.

Sitealert:
alden80, ну кэш у себя почистите штоле. CTRL+F5.
И да, ?/login/ этим редиректом убирается.

Кэш очистил. Ничего не поменялось. Гляньте, пожалуйста, файл httaccess. Возможно проблема в наложении этих условий на другие условия. https://goo.gl/oieiEA Я готов заплатить за помощь с решением.

Sitealert:
alden80, Вы с какого раза сможете понять, что знак $ там лишний?

Изменил условия на такие без $ и все равно проблема осталась в том же виде. При переходе по ссылке http://medimplant.com.ua/ru/ips/index.php?/login/ вместо ссылки http://medimplant.com.ua/ips/index.php?/login/ такая вот http://medimplant.com.ru/ips/index.php?/login/

RewriteCond %{REQUEST_URI} ^/ru/ips
RewriteRule ^.*$ /ips/? [R=301,L]

RewriteCond %{REQUEST_URI} ^/ua/ips
RewriteRule ^.*$ /ips/? [R=301,L]

Sitealert:
Вы напишите нормально, какой должен быть запрос, и какой должен быть редирект (прямой или 301-й, и на какой адрес или файл). Потому что из того нагромождения, которое Вы написали, лично я вообще ничего не понимаю.

Вот эти условия исключения работают нормально на другом домене. А на домене medimplant.com.ua ссылка medimplant.com.ua/ru/ips/index.php?/login/ преобразуется в medimplant.com.ru/ips/index.php?/login/ То есть не срабатывает исключение и из базовой ссылки преобразование подставляет часть /ru/ вместо окончания домена .ua


RewriteCond %{REQUEST_URI} ^/ru/ips/$
RewriteRule ^.*$ /ips/? [R=301,L]

RewriteCond %{REQUEST_URI} ^/ua/ips/$
RewriteRule ^.*$ /ips/? [R=301,L]
Sitealert:
alden80, вот такую ерунду, как ?, & и = в REQUEST_URI не пишут.
А если тогда не надо писать $ в условии.

В конечном итоге получился такой набор:


RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteCond %{REQUEST_URI} !\ips
RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]
RewriteRule ^ru/(.*)?$ $1 [L]
RewriteRule ^ua/(.*)?$ $1 [L]

И условие исключения без $ не исправляет проблему. Ссылка получается искаженная как и без этого условия http://medimplant.com.ru/ips/index.php?/login/ а должна быть http://medimplant.com.ua/ips/index.php?/login/

Похоже какая то коллизия возникает вот с этим правилом

RewriteRule ^ua/(.*)?$  $1 [L]

Есть еще вот такие правила с условиями.


RewriteCond %{REQUEST_URI} ^/ru/ips/$
RewriteRule ^.*$ /ips/? [R=301,L]

RewriteCond %{REQUEST_URI} ^/ua/ips/$
RewriteRule ^.*$ /ips/? [R=301,L]

На другом домене они исключат обработку ссылок в которых есть /ru/ips/ или /ua/ips/ а на домене medimplant.com.ua проблема искажения конечной ссылки которую я описал выше.

Подскажите, пожалуйста.

Подскажите, пожалуйста, как в набор условий редиректа 301 добавить исключение обработки ссылок с вхождением /ips/ посередине ссылки. Набор условий такой:


RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} !\/$
RewriteRule ^(.*[^\/])$ /$1/ [R=301,L]
RewriteRule ^ru/(.*)?$ $1 [L]
RewriteRule ^ua/(.*)?$ $1 [L]

Вот такого вида условие исключения обработки не обрабатывается:


RewriteCond %{REQUEST_URI} !\ips\/$

У меня есть условие редиректа всех ссылок с окончанием "/алиас.html" на окончание "/алиас/" кроме ссылок в которых встречается составляющая ссылки "/order/". Подскажите, пожалуйста, как мне добавить в условие исключение к "/order/" еще "/contacts/"?

RedirectMatch 301 ^((?:[^/]*/)++(?<!/order/).*)\.html$ $1/

Sitealert:
А что такое ... ?

... это начало ссылки. Вот таким образом сделал редирект с исключением:

RedirectMatch 301 ^((?:[^/]*/)++(?<!/order/).*)\.html$ $1/

Подскажите, пожалуйста, как исключить из 301 редиректа url с определенной частью. В htaccess вот такой строчкой все страницы с .html в конце направляются 301 редиректом на их аналог без .html

RedirectMatch 301 (.*)\.html$ /$1/

Мне нужно чтобы это правило не срабатывало для ссылок которые имеют составляющую .../order/xxx.html. Вот такой вариант у меня не работает:

RewriteCond %{REQUEST_URI} !^/order

RewriteRule ^(.*)\.html$ /$1/ [R=301,L]

Такая вариация исключения тоже не работает:

RewriteCond %{REQUEST_URI} !^/order\.html$