301й редирект

Статус
В этой теме нельзя размещать новые ответы.

Mons

Хранитель порядка
Регистрация
2 Апр 2006
Сообщения
1.585
Реакции
967
Есть страница
Для просмотра ссылки Войди или Зарегистрируйся

Через mod rewrite она доступна как
Для просмотра ссылки Войди или Зарегистрируйся

Не могу сделать чтобы по заходу на вариант один автоматом производился 301й редирект на вариант 2.

делал и
RewriteRule ^/index.php?id_page=1&id_article=34 /article_1_34.html [L]

делал и так:
redirect /index.php?id_page=5&id_article=34 Для просмотра ссылки Войди или Зарегистрируйся

и просто 301
Реврайтятся страницы так:
Код:
RewriteRule ^article_([^_]*)_([^_]*)\.html$ /index.php?id_page=$1&id_article=$2 [L]
 
Попробуй флаг R добавить
Код:
RewriteRule ^article_([^_]*)_([^_]*)\.html$ /index.php?id_page=$1&id_article=$2 [R=301,L]
 
  • Нравится
Реакции: Mons
Порисходит обратный редирект от желаемого.
То бишь из обработанного урла к страшному.
 
Сорри, не внимательно прочёл. Показалось, что это правило, по которому нужно редиректить.
Код:
RewriteCond %{QUERY_STRING} id_page=([^_]*)&id_article=([^_]*)
RewriteRule ^index.php$ /article_%1_%2.html? [L,R=301]
Но тут другая проблема появляется - если использовать это правило одновременно с первым, мод реврайт зациклится. Как это побороть, что-то не соображу сейчас.
 
:) Если добавить то он редиректит на /article_ _.html
 
хм... странно. Мозг начинает плавиться

Apache/2.0.59 (Unix) PHP/5.2.1

С ссылки длинной он делает редирект... на страницу с коротким URL
По клику на сыkлку реврайт он выдает сраницу с текстом:
Moved Permanently

The document has moved here.

ну и соответсвенно here, это та же самая ссылка. То бишь цикл.
Ссылается на ссылку обработанную а та на себя и т.д


Привожу полный листинг.

Код:
RewriteEngine On
RewriteRule ^index\.html$ index\.php [L] 
RewriteRule ^map\.html$ map\.php [L]
RewriteRule ^contacts\.html$ contacts.php [L]
RewriteRule ^news\.html$ readnews.php [L]
RewriteRule ^news_([^_]*)\.html$ /readnews.php?id_news=$1 [L]  
RewriteRule ^article_([^_]*)_([^_]*)\.html$ /index.php?id_page=$1&id_article=$2 [L]
RewriteRule ^contacts\.html$ index.php?id_page=1&id_article=23 [L]
RewriteRule ^photo_gallery\.html$ index.php?id_page=4&id_article=33 [L]
RewriteRule ^about_me\.html$ index.php?id_page=1&id_article=21 [L]
RewriteCond %{QUERY_STRING} id_page=([^_]*)&id_article=([^_]*)
RewriteRule ^index.php$ /article_%1_%2.html? [L,R=301]
 
Монс, если хотите именно 301 редирект странички, то он делается так
PHP:
Redirect 301 /old-page.html http://new-domain.ru/new-page.html
браузеру отдается 301.
Если через реврайт делать, отдается 200.
PHP:
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ чтото.ru/index.php?id_page=$1&id_article=$2 [L]
 
Монс, если хотите именно 301 редирект странички, то он делается так
PHP:
Redirect 301 /old-page.html http://new-domain.ru/new-page.html
браузеру отдается 301.
Если через реврайт делать, отдается 200.
PHP:
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ чтото.ru/index.php?id_page=$1&id_article=$2 [L]

Движек сразу генерит страницы послереврайта.
htaccess только делаетт ссылание с длинной на короткую.

Вариант
Код:
Redirect 301 /old-page.html http://new-domain.ru/new-page.html
делался в начале возни и как я писал не пашет.

PHP:
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ чтото.ru/index.php?id_page=$1&id_article=$2 [L]
так же не пашет ))
 
Движек сразу генерит страницы послереврайта.
htaccess только делаетт ссылание с длинной на короткую.
Я про то, что реврайт и редирект немного разные вещи)

а тот код, что я привел, работает 100%. Может быть у вас на хостинге htaccess запрещен?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху