RewriteRule по регулярке

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем efs, 6 авг 2012.

  1. efs

    efs SEO оптимизатор дискрипторов одностраничных сайтов

    Moderator
    Регистр.:
    20 ноя 2009
    Сообщения:
    827
    Симпатии:
    480
    сайт на wordpress, необходимо перенаправить все урлы вида
    Код:
    сайт.ру/?p=1
    сайт.ру/?p=2
    сайт.ру/?p=3
    ...
    сайт.ру/?p=9999
    на урлы вида
    Код:
    сайт.ру/articles/1.html
    сайт.ру/articles/2.html
    сайт.ру/articles/3.html
    ...
    сайт.ру/articles/9999.html
    соответственно.
    и именно от 1 до 9999, все что свыше, перенаправлять не нужно.
     
  2. zzallexx

    zzallexx

    Регистр.:
    11 июн 2008
    Сообщения:
    1.036
    Симпатии:
    699
    Если ничего не перепутал то так :)
    PHP:
    RewriteRule ^articles/([0-9]{1,4}).htmlindex.php?p=$[L]
    я правда на wp не пробовал сделал просто отдельно

    надо поместить эту строку в htaccess в самый верх после
    PHP:
    RewriteEngine On
    RewriteBase 
    /
    правила то действуют в порядке записи в htaccess
     
  3. Sunday

    Sunday

    Регистр.:
    13 дек 2009
    Сообщения:
    732
    Симпатии:
    323
    Люди добрые, помогите с редиректом пожалуйста. Переехал на новый домен. Структура ссылок осталась прежняя. Изменилась только зона.

    Было:

    site.info/765-blabla-bla.html
    site.info/razdel/
    site.info/articles.html

    Стало:

    site.ru/765-blabla-bla.html
    site.ru/razdel/
    site.ru/stranica.html

    обычный 301-й редирект работает только для главной. Но по обратным ссылкам ходят люди и попадают на Not Found :(
     
  4. tirrex

    tirrex

    Регистр.:
    9 ноя 2008
    Сообщения:
    213
    Симпатии:
    60
    добавить в htaccess старого сайта:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://site.ru/$1 [R=301,L]
     
    Sunday нравится это.