Помогите с редиректом в .htaccess

(Ответов: 17, Просмотров: 1362)
Страница 2 из 2 Первая 12
  1. Дипломник Аватар для shkip3r
    • Регистрация: 01.11.2013
    • Сообщений: 100
    • Репутация: 25
    druzhkov, точно, я в первый раз тоже на этом обжегся)
    • 0
  2. Новичок
    • Регистрация: 15.03.2014
    • Сообщений: 9
    • Репутация: 0
    Кеш чистил, все равно показывает конечный URL :-(
    В различных описаниях читал, что нельзя переделать внешний редирект на внутренний, то есть если поставил 301, то как не извращайся, будет показан последний url. Я уж и пробовал "уводить" на другие директории со своим .htaccess, все равно не получается...
    • 0
  3. Новичок
    • Регистрация: 22.06.2012
    • Сообщений: 18
    • Репутация: 14
    Вот так всё работает.
    PHP код:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase 
    /
    RewriteRule ^novosti/([a-zA-Z0-9_-]+)$ /news/$[L,R=301]
    RewriteRule ^news/([a-zA-Z0-9_-]+)$ /city-news.php?city=$[L]
    </
    IfModule
    Но, о каких /articles/ вы потом пишите?
    Вы определитесь и напишите один раз нормально что вам нужно.
    UP. Слешь на конце?
    Замените на RewriteRule ^novosti/([a-zA-Z0-9_-]+)/$ /news/$1 [L,R=301]
    Или так
    RewriteRule ^novosti/([a-zA-Z0-9_-]+)/?$ /news/$1 [L,R=301]
    Последний раз редактировалось sakhseo; 27.03.2014 в 02:24.
    • 0
  4. Новичок
    • Регистрация: 15.03.2014
    • Сообщений: 9
    • Репутация: 0
    sakhseo,
    Об /articles/ писал не я, а shkip3r.
    Попробовал, все равно в результате в строке отражается city-news.php?city=город :-(
    Получается, что если в начале цепочки указал 301 редирект, то все преобразования проходят под "знаком" внешнего редиректа, результат которого - отражение в строке браузера конечного url. А в конечном url нужен включенный ЧПУ, который делается внутренним редиректом. Вот и получается противоречие...
    • 0
  5. Новичок
    • Регистрация: 22.06.2012
    • Сообщений: 18
    • Репутация: 14
    Прежде чем написать, я проверил.
    Скопируйте полностью что вы пытаетесь делать.
    И да, если я поменяю сторочки
    RewriteRule ^novosti/([a-zA-Z0-9_-]+)$ /news/$1 [L,R=301]
    RewriteRule ^news/([a-zA-Z0-9_-]+)$ /city-news.php?city=$1 [L]
    местами, ничего не изменится. Тут по другому работает.
    • 0
  6. Новичок
    • Регистрация: 15.03.2014
    • Сообщений: 9
    • Репутация: 0
    sakhseo,
    Все равно после запроса http://www.site.ru/novosti/novomoskovsk в строке пишет: http://www.site.ru/city-news.php?city=novomoskovsk
    А на http://www.site.ru/news/novomoskovsk - все ок остается на этом урле.
    Вот .htaccess:
    Код:
    RemoveHandler .html .htm  
    AddType application/x-httpd-php .php .htm .html .phtml
    php_flag display_errors on
    php_value error_reporting 2047
    php_value max_execution_time 200
    RewriteEngine On
    RewriteBase /
    
    RewriteRule ^novosti/([a-zA-Z0-9_-]+)$ /news/$1 [L,R=301]
    RewriteRule ^news/([a-zA-Z0-9_-]+)$ /city-news.php?city=$1 [L]
    
    # склейка доменов
    	RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
    	RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
    	RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /index.html
    	RewriteRule .* / [R=301,L]
    
    FileETag MTime Size
    <ifmodule mod_expires.c>
    <filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
    ExpiresActive on
    ExpiresDefault "access plus 1 month"
    </filesmatch>
    </ifmodule>
    DefaultLanguage ru
    AddDefaultCharset windows-1251
    PHP_VALUE default_charset windows-1251
    • 0
  7. Новичок
    • Регистрация: 22.06.2012
    • Сообщений: 18
    • Репутация: 14
    Код:
    RemoveHandler .html .htm
    AddType application/x-httpd-php .php .htm .html .phtml
    php_flag display_errors on
    php_value error_reporting 2047
    php_value max_execution_time 200
    
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{HTTP_HOST} ^test4\.ru$ [NC]
    RewriteRule ^(.*)$ http://www\.test4.ru/$1 [L,R=301]
    
    RewriteRule ^novosti/([a-zA-Z0-9_-]+)/?$ /news/$1 [L,R=301]
    RewriteRule ^news/([a-zA-Z0-9_-]+)/?$ /city-news.php?city=$1 [L]
    
    RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /index.html
    RewriteRule .* / [R=301,L]
    
    FileETag MTime Size
    <ifmodule mod_expires.c>
    <filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$">
    ExpiresActive on
    ExpiresDefault "access plus 1 month"
    </filesmatch>
    </ifmodule>
    DefaultLanguage ru
    AddDefaultCharset windows-1251
    PHP_VALUE default_charset windows-1251
    Вот так попробуй. Только test4 на своё замени.
    И не совсем понятно что у тебя будет открываться когда не будет подпадать под правила)))
    • 0
  8. Новичок
    • Регистрация: 15.03.2014
    • Сообщений: 9
    • Репутация: 0
    sakhseo,
    Огромный респект, sakhseo! :-) Вы - волшебник!
    Я склейку доменов не там поставил, получается?
    И не совсем понятно что у тебя будет открываться когда не будет подпадать под правила)))
    Не понял этот вопрос.
    • 0
Страница 2 из 2 Первая 12

Похожие темы

Темы Раздел Ответов Последний пост
Помогите разобраться с редиректом
Прочее 4 18.10.2012 19:25
Помогите с редиректом 301
DLE 8 20.05.2012 12:31
Помогите с 301 редиректом
Web программирование 6 04.06.2011 14:37
Помогите с .htaccess!
Web программирование 0 31.01.2011 03:22

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры