301 редирект в .htaccess по маске


Dram
6498

Господа, возможно ли следующее:

Есть группа адресов вида http://www.site.ru/слово1/(id страницы)-слово2(цифры или буквы)

их нужно переадресовывать на

http://www.site.ru/слово3/(id страницы)-слово2(цифры или буквы), при условии, что встречается слово2 встречается в сочетании со словом1

Т.е. примерно так

Redirect 301 /слово1/*-слово2* http://www.site.ru/слово3/*-слово2*

RewriteRule ^.htaccess$ — [F]

Причем при переадресации должно меняться только слово1 на слово3 с сохранением всего другого в ссылке.


Carapax

Можно, наверное, попробовать так:

RewriteRule ^(.*)/слово1/(.*)-слово2(.*)$ $1/слово3/$2-слово2$3 [R=301,L]

Общая схема (плюс-минус синтаксис).


Dram

А как вообще прописать правильно любой символ? по аналогии со *


Carapax

Погуглите «синтаксис регулярных выражений». Вот здесь, например, неплохо описано…


Dram

Прописал так — не работает

Redirect 301 /слово1/[0123456789]-слово2[0123456789] http://www.сайт.ru/слово3/[0123456789]-слово4[0123456789]


Asiania

Поменяйте

/слово3/[0123456789]-слово4[0123456789]

на

/слово3/$1-слово4$2

Если в первой части строки (где слово 1 и 2) вы определяете тип возможных символов ([0123456789]), то во второй части они просто уже принимаются и там тип не важен


Dram

Спасибо, теперь работает но частично, прописал так

Redirect 301 /слово1/[0123456789]-слово2[0123456789] http://www.сайт.ru/слово3/$1-слово4$2

Переадресация работает, но частично — вот как теперь при переадресации выглядит ссылка

http://www.сайт.ru/слово3/(цифры)-слово2(цифры)

Т.е. слово1 меняется на слово3, а вот слово2 не меняется на слово4!


Asiania

Хм, странно. Киньте конкретный код, можно в личку если здесь палить не хотите — попробую помочь..


GoldFXTrader

Подскажите как правильно настроить редирект по маске

с страниц 

https://site.ru/opyt/nash-opyt/zemelnyy-uchastok-mnogokvartirnogo-doma-oformlen/

https://site.ru/opyt/nash-opyt/ххххххххххххх/

на https://site.ru/opyt/nash-opyt/

код  в  .htaccess  следующий:

Options -Indexes 
ErrorDocument 404 /404.php

<IfModule mod_php5.c>
        php_flag allow_call_time_pass_reference 1
        php_flag session.use_trans_sid off

        #php_value display_errors 1

        #php_value mbstring.internal_encoding UTF-8
</IfModule>

<IfModule mod_rewrite.c>
        Options +FollowSymLinks
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-l
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !/bitrix/urlrewrite.php$
        RewriteRule ^(.*)$ /bitrix/urlrewrite.php [L]
        RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization}]
</IfModule>

<IfModule mod_dir.c>
        DirectoryIndex index.php index.html
</IfModule>

<IfModule mod_expires.c>
        ExpiresActive on
        ExpiresByType image/jpeg "access plus 3 day"
        ExpiresByType image/gif "access plus 3 day"
</IfModule>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *