Pekkonen

Рейтинг
9
Регистрация
02.04.2015

Я не вижу проблемы с этом файле...

Но он не работает :(

Aisamiery:
Попробуйте так

Попробовал, не работает.

Удалил всё лишнее из файла, для теста.

Вот такой вид он имеет сейчас:

RewriteEngine On

RewriteBase /

Options -Indexes

AuthType Basic
AuthName "restricted area"
AuthUserFile /var/www/dev.domain.ru/.htpasswd
require valid-user

RewriteCond %{REQUEST_URI} ^/myblog/title
RewriteRule ^ /newblog/title [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_URI} !html$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

#TYPO3
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php
Дикий пионер:
http://domain.ru/newblog/ - это внешний ресурс, если у вас это папка в том же каталоге - то надо делать без http и домена rewrite.

Спасибо за ответ!

Возможно в этом дело, но при таком правиле (добавил еще один уровень в целевом URL):

RewriteRule ^myblog/title.* /newblog/title [L]

Всё равно срабатывает редирект, правда уже идём почему то сюда

http://domain.ru/newblog/

Вместо http://domain.ru/newblog/title

И опять же редирект, вместо рерайта

jkm:
Сначала нужно разобраться, почему происходит ошибка, если отрывать страницу

http://sitename.ru/product_name1.html

Ссылка на товар открывается без проблем и нормально работает.

Проблемы возникают из-за параметров, которые привязываются к ссылкам на стороннем сервере (яндекс.маркет)

jkm:
А чем не устраивал предложенный вариант.

Если вы про ваш вариант

RewriteCond %{QUERY_STRING} ^_openstat

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

То он в моих конкретных условиях почему то не спасает, хотя сам редирект работает верно.

После вставки этого редиректа не происходит главного - по каким то причинам ссылка идет на ошибку (срабатывают внутренние редиректы из Magento)

Поэтому я и пытаюсь обойти эти внутренние редиректы через htaccess.

Редирект на ссылку с _ не нужен, т.к. правильная ссылка именно

http://sitename.ru/product_name1.html

Поэтому я и предполагаю что тут может подойти 2-х ходовка

Сначала вырезаем из URL символы ?_

А потом уже обрезаем всё лишнее (начиная с openstat)

Хотя уверенности, что это будет работать как надо у меня уже немного...

jkm:

Порядок расположения правил имеет значение. Результат работы правил влияет на последующие правила.
Поэтому редиректы должны срабатывать до того как другие правила что-нибудь поменяют.
Ставьте редирект в самом верху сразу после RewriteEngine On

Еще раз спасибо!

Я в курсе этого, но тут мне надо победить внутренние редиректы Magento, которые сейчас срабатывает не к месте, и являются системными (создаются в Magento автоматически)

Отсюда и вся эта свистопляска...

Тогда переформулирую вопрос - возможно ли добавить перед этими правилами

RewriteRule (.+?)\.openstat.+ http://%{HTTP_HOST}/1 [L,R=301]

RedirectMatch permanent (.+?)\openstat.+$ http://sitename.ru$1

Еще одно, которое будет вырезать из адреса конкретное сочетание ?_?

И дальше уже из обрезанного адреса буду вырезать openstat

Извиняюсь за сумбур, но другие решения как победить это в голову не приходят.

jkm:

RewriteCond %{QUERY_STRING} ^_openstat
RewriteRule ^(.*)$ /$1? [R=301,L]

Благодарю за участие!

Истина где-то рядом, но снова не могу понять в чем дело...

Предложенный вами вариант срабатывает на другом сайте, но на этом ему что-то мешает, и в результате получаю неправильный адрес :(

Может быть всё таки получится модернизировать это:

RewriteRule (.+?)\.openstat.+ http://%{HTTP_HOST}/1 [L,R=301]

RedirectMatch permanent (.+?)\openstat.+$ http://sitename.ru$1

Я немного ошибся в первом посте и этот редирект

Но эти правила срабатывают, только если убрать знак вопроса внутри "?_openstat", т.е. на таком URL'е только это работает.

http://sitename.ru/product_name1.html_openstat=bWFya2V0LnlhbmRlw&frommarket=https%3A//market.yandex.ru/search.xml%3Finshopname%3Dsitename.ru%26fesh%3D921381%26free%3D1&ymclid=63237848425050889001

Такой редирект:

http://sitename.ru/product_name1.html_

С подчеркиванием на конце URL'a.

Hanke:
Pekkonen, вы хотите обрезать ссылку редиректом для того, чтобы она стала ЧПУ-url? Если так, то не легче использовать специальные компоненты для этого, которые на автомате переделывают такие url?

У сожалению ЧПУ тут не помогут, нужно убрать часть адреса именно через htaccess

После 2-х дней в поисках и попытках решение было найдено:

   RedirectMatch 301 /dir/index.php/(.*) /shop/$1


RewriteRule .* index.php [L]
RewriteRule ^$ index.php [L]
jeanx:
В корневую директорию надо было ставить.

Пробовал, но безрезультатно...

PS В скайпе ответьте плиз.

12
Всего: 15