0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 15
|
|
1 | |
конфликтует связка Redirect 301 и RewriteRule27.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 команду RewriteRule ^page/ыыфыыы$ /page/name2 [R=301,L] но она не рабоатет из-за кирилицы. "ыыфыыы" понимает только команда Redirect Кодировка .htaccess установлена UTF-8. Если использовать RewriteRule для редиректа то проблема решается только для английских букв, а для русского не подходит. редиректов типа Redirect 301 /page/ыыфыыы /page/name2 может быть много, текст после Redirect 301 /page/(....) - это названия отдельных статей, которые нужно редиректить на новые Добавлено через 7 минут может быть есть способ заставить RewriteRule понимать не английские буквы?
0
|
|
27.04.2013, 17:02 | |
Ответы с готовыми решениями:
7
конфликтует связка Redirect 301 и RewriteRule Htaccess - Redirect и RewriteRule Redirect, RewriteRule и прочее Как в web.config на iis прописать Redirect так же как в .htaccess типа: Redirect 301 /thumb http://st.site2.com? |
27.04.2013, 17:17 | 2 |
0
|
Почетный модератор
![]() ![]() 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] у меня все работало, был редирект на русские страницы - "Видео", "Контакты" и т.д. К сожалению, кода не осталось, т.к. переделал под одну точку входа - но помню, что писал также
1
|
0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 15
|
|
27.04.2013, 17:56 [ТС] | 4 |
ВАУ! неужели заработало!!! Спасибо вам огромное!!
я модифицировал ваш вариант, чтобы редирект типа 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
|
0 / 0 / 0
Регистрация: 24.07.2012
Сообщений: 15
|
|
27.04.2013, 18:18 [ТС] | 6 |
можно, если в 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, но короткие урлы работают а длинные нет, помогите плиз - не хватает мозга разобраться.
ЗЫ по теме на форуме разработчика не смогли помочь {ссылка удалена} |
04.08.2013, 15:15 | |
Помогаю со студенческими работами здесь
8
Redirect 301 301 redirect Redirect 301 Redirect 301 .htaccess 301 redirect Redirect 301 htaccess Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |