htaccess несколько правил перезаписи для нескольких доменов

У меня несколько URL-адресов, и я хочу перенаправить старые URL-адреса на новые.

Приведенный ниже код действительно работает, поэтому, например, htaccess ловит www.domain-a.com/index.php?id=41 и перенаправляет его с кодом состояния 301 в тот же домен с путем www.domain-a.com/our-conditions:

#301 redirect for domain A on a special id.
    RewriteCond %{HTTP_HOST} ^www\.domain-a\.com$
    RewriteCond %{REQUEST_URI} ^\/index\.php$
    RewriteCond %{QUERY_STRING} ^id=41(.*)$
    RewriteRule .* https://%{HTTP_HOST}/our-conditions? [R=301,L]

#410 on for domain A on a special id.
    RewriteCond %{HTTP_HOST} ^www\.domain-a\.com$
    RewriteCond %{REQUEST_URI} ^\/index\.php$
    RewriteCond %{QUERY_STRING} ^id=52(.*)$
    RewriteRule .* - [R=410,L]

#301 redirect for domain B on a special id.
    RewriteCond %{HTTP_HOST} ^www\.domain-b\.com$
    RewriteCond %{REQUEST_URI} ^\/index\.php$
    RewriteCond %{QUERY_STRING} ^id=221(.*)$
    RewriteRule .* https://%{HTTP_HOST}/press? [R=301,L]

Как вы можете видеть выше, это большой объем кода для нескольких правил. Теперь я подумал, что это можно сделать лучше, и попробовал что-то другое.

Моя идея заключалась в том, чтобы иметь несколько RewriteRules для одного домена. Обычно это отлично работает, как в этом примере:

RewriteCond %{HTTP_HOST} ^www\.domain-a\.com$
RewriteRule ^press/material/(/?)$ https://%{HTTP_HOST}/press [R=301,L]
RewriteRule ^about/(/?)$ https://www.domain-b.de/impress [R=301,L]

Теперь я придумал эту пробу:

#Multiple rules for domain A on a special id.
    RewriteCond %{HTTP_HOST} ^www\.domain-a\.com$
    RewriteCond %{REQUEST_URI} ^\/index\.php$
    RewriteRule ^index.php?id=41(/?)$ https://%{HTTP_HOST}/our-conditions? [R=301,L]
    RewriteRule ^index.php?id=52(/?)$  - [R=410,L]

#Multiple rules for domain B on a special id.
    RewriteCond %{HTTP_HOST} ^www\.domain-b\.com$
    RewriteCond %{REQUEST_URI} ^\/index\.php$
    RewriteRule ^index.php?id=221(/?)$ https://%{HTTP_HOST}/press? [R=301,L]

Проблема здесь в том, что мои условия не действуют. Напримерindex.php?id=41 просто проходит через htaccess, и мое приложение говорит 404 (не найдено).

Можете ли вы помочь мне заставить мой подход работать?

0 ответов

Другие вопросы по тегам