У меня есть код ниже HTAccess на месте:301 RedirectMatch - Много ссылок
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RedirectMatch 301 ^/([^-]+)-([^-]+)-([^-]+)-([^-]{2})\.html$ /$1-$2-in-$3-$4.html
RedirectMatch 301 ^/([^-]+)-([^-]+)-([^-]+)\.html$ /$1-$2-in-$3.html
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Я пытаюсь автоматически перенаправлять страницы включить «в» в новой структуре URL. Две вышеперечисленные строки RedirectMatch работают в двух сценариях, но мне нужен третий сценарий.
Первая RedirectMatch линия работает для города (одно имя):
domain.com/music-classes-dallas-tx.html ===> domain.com/music-classes-in-dallas-tx. HTML
Вторая RedirectMatch линия работает для состояний:
domain.com/music-classes-texas.html ===> domain.com/music-classes-in-texas.html
Я теперь нужно, чтобы RedirectMatch работал с названиями городов, которые имеют 2-3 слова. Например, The Colony TX или Новый Орлеан LA. Вышеприведенный код не улавливает их.
Кто-то сказал мне использовать нижеследующее, но он вызывает цикл переадресации и бросает кучу входных данных in-in-in-in-in в URL.
RedirectMatch 301 ^/([^-]+)-([^-]+)-(.+)-([^-]{2})\.html$ /$1-$2-in-$3-$4.html
Спасибо! Кажется, что цикл повторяется с ошибкой переадресации: domain.com/music-classes-in-in-in-in-in-in-in-in-in-in-in-in-in-in-in -в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в -в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в-в in-in-in-in-in-in-in-in-in-in-in-in-dallas-tx.html – user1858780
@ user1858780 моя ошибка. Я тестировал его с помощью сайта .htaccess tester. Я действительно проверил это в своей системе, и правило будет работать так, как ожидалось. Я отредактировал первое правило. –
Бум! Вы гений! Ты заработал! Спасибо!!! :) – user1858780