0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 15
1

конфликтует связка Redirect 301 и RewriteRule

27.04.2013, 17:02. Показов 2244. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
задача: сделать редирект с использованием русских букв
/page/ыыфыыы на /page/page2

я написал редирект, но он выдает /page/name2?name=ыыфыыы вместо /page/name2

вот весь .htaccess (3 строки):

Код
RewriteEngine on
RewriteRule ^page\/(.+)$ pages.php?name=$1
Redirect 301 /page/ыыфыыы /page/name2
в моем случае нужно использовать именно Redirect 301 потому что я пробовал решить проблему используя вместо команды Redirect
команду RewriteRule ^page/ыыфыыы$ /page/name2 [R=301,L] но она не рабоатет из-за кирилицы.
"ыыфыыы" понимает только команда Redirect
Кодировка .htaccess установлена UTF-8. Если использовать RewriteRule для редиректа то проблема решается только для английских букв, а для русского не подходит.

редиректов типа Redirect 301 /page/ыыфыыы /page/name2 может быть много,
текст после Redirect 301 /page/(....) - это названия отдельных статей, которые нужно редиректить на новые

Добавлено через 7 минут
может быть есть способ заставить RewriteRule понимать не английские буквы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2013, 17:02
Ответы с готовыми решениями:

конфликтует связка Redirect 301 и RewriteRule
задача: сделать переадресацию c http://test.com/page/name на http://test.com/page/name2 ...

Htaccess - Redirect и RewriteRule
В папке www.site.ru/catalog лежит такой htaccess При переходу по адресу...

Redirect, RewriteRule и прочее
Доброго времени суток У меня есть ссылка site.com/blog/?page=1 Которая должна стать...

Как в web.config на iis прописать Redirect так же как в .htaccess типа: Redirect 301 /thumb http://st.site2.com?
Нужно прописать redirect на IIS в web.config который выполняет то же самое что и строка Redirect...

7
887 / 353 / 1
Регистрация: 12.08.2012
Сообщений: 4,401
Записей в блоге: 5
27.04.2013, 17:17 2
Цитата Сообщение от c-alex Посмотреть сообщение
может быть есть способ заставить RewriteRule понимать не английские буквы?
Он и так их понимает, просто вы делаете что-то не так
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16843 / 6722 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
27.04.2013, 17:21 3
а так?
Код
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^page/ыыфыыы/?$ /page/name2 [R=301,L,NE]
RewriteRule ^page\/(.+)$ pages.php?name=$1 [L,NE]
Добавлено через 2 минуты
у меня все работало, был редирект на русские страницы - "Видео", "Контакты" и т.д. К сожалению, кода не осталось, т.к. переделал под одну точку входа - но помню, что писал также
1
0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 15
27.04.2013, 17:56  [ТС] 4
Цитата Сообщение от KOPOJI Посмотреть сообщение
а так?
Код
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^page/ыыфыыы/?$ /page/name2 [R=301,L,NE]
RewriteRule ^page\/(.+)$ pages.php?name=$1 [L,NE]
Добавлено через 2 минуты
у меня все работало, был редирект на русские страницы - "Видео", "Контакты" и т.д. К сожалению, кода не осталось, т.к. переделал под одну точку входа - но помню, что писал также
ВАУ! неужели заработало!!! Спасибо вам огромное!!
я модифицировал ваш вариант, чтобы редирект типа
RewriteRule ^page/старый+урл/?$ /page/name2 [R=301,L,NE] работал, потому что "ыыфыыы" работал, а "ыыфыыы+ыыфыыы" не хотел, вот что получилось:
Код
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^page/старый[+]урл/?$ /page/name2 [R=301,L,NE]
RewriteRule ^page\/(.+)$ pages.php?name=$1 [L,NE]
теперь все работет и с русским и с ивритом.
большое вам спасибо!!

Добавлено через 3 минуты
если + (плюс) не взять в квадратные скобки то не будет работать,
я пытался его экранировать, типа \+ но работает только [+]
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16843 / 6722 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
27.04.2013, 18:00 5
вроде можно сам пробел экранировать. два\ слова ..Точно не помню
1
0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 15
27.04.2013, 18:18  [ТС] 6
Цитата Сообщение от KOPOJI Посмотреть сообщение
вроде можно сам пробел экранировать. два\ слова ..Точно не помню
можно, если в URL прописан пробел, типа "старый урл", а у меня в URL передается "старый+урл".

по поводу моего вопроса теперь понял все свои ошибки:
1) Я пытался использовать RewriteRule с плюсом в условии и думал что проблема в не-английских символах, а проблема была в плюсе )
2) нужно было условия расположить в правильном порядке
сначала RewriteRule ^page/ыыфыыы/?$ /page/name2 [R=301,L,NE]
потом RewriteRule ^page\/(.+)$ pages.php?name=$1 [L,NE]
а я просто менял Redirect 301 на RewriteRule в той же строке
мда, если бы не вы я бы еще долго бился лбом об этот редирект ))
0
KOPOJI
27.04.2013, 18:21
  #7

Не по теме:

рад был помочь :)

1
bullshmaiser
04.08.2013, 15:15 8
Помогите отыскать ошибку в htaccess, при переезде на новый движок потребовалось использовать много редиректов 301, но короткие урлы работают а длинные нет, помогите плиз - не хватает мозга разобраться.
ЗЫ по теме на форуме разработчика не смогли помочь {ссылка удалена}
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2013, 15:15
Помогаю со студенческими работами здесь

Redirect 301
Redirect 301 /?lang=russian&page=about http://mysite.ru/o_kompanii_velt/ - не работает. ...

301 redirect
Вопрос к специалистам. Есть сайт с партнерской программой, партнерские ссылки идут на сайт через...

Redirect 301
Все привет. Возникла проблема с редиректом Есть URL адрес /spory/ его надо склеить 301...

Redirect 301
Редерект в файле .htaccess, не работает на некоторых линках. Redirect 301...

.htaccess 301 redirect
переделывается структура сайта и каталога в частности нужно сделать редирект для разделов и...

Redirect 301 htaccess
Уважаемые подскажите! Есть url вида mysite.com/?test=* нужно в htaccess'e сдеать редирект на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru