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

D
На сайте с 28.06.2008
Offline
997
6525

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

Есть группа адресов вида 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
На сайте с 27.03.2008
Offline
94
#1

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

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

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

играем (http://www.awro.ru/) спортивное питание (https://maxnutrition.ru/) магазин сантехники в спб (https://saniteka.ru/)
D
На сайте с 28.06.2008
Offline
997
#2

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

Carapax
На сайте с 27.03.2008
Offline
94
#3

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

D
На сайте с 28.06.2008
Offline
997
#4

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

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

Asiania
На сайте с 12.02.2009
Offline
47
#5

Поменяйте

/слово3/[0123456789]-слово4[0123456789]
на
/слово3/$1-слово4$2

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

Я работаю с аудиторской системой: Полиция Сайтов (http://sitepolice.ru/?partner=320)
D
На сайте с 28.06.2008
Offline
997
#6

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

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

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

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

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

Asiania
На сайте с 12.02.2009
Offline
47
#7

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

GF
На сайте с 08.10.2020
Offline
0
#8

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

с страниц 

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>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий