Redirect
- это директива mod_alias, а RewriteRule
- это директива mod_rewrite. Различные Apache модули работают независимо и в разное время во время запроса. Сначала запускается mod_rewrite, несмотря на очевидный порядок директив в файле конфигурации. Вам следует избегать смешивания перенаправлений из обоих модулей в одном и том же файле конфигурации, чтобы избежать таких конфликтов.
Преобразуйте существующие директивы Redirect
, чтобы вместо них использовать mod_rewrite, и убедитесь, что большинство указанных перенаправлений c являются первыми.
Например:
RewriteEngine On
# Specific redirects
RewriteRule ^abc123$ https://domainB.com/abc/?page_url=12 [R=302,L]
# General redirect
RewriteCond %{HTTP_HOST} !domainB\.in [NC]
RewriteRule (.*) https://domainB.in/something/?page_url=1&eid=$1 [R=301,L]
Обратите внимание, что опубликованная вами директива Redirect
, в которой явно не указан код состояния, по умолчанию будет перенаправлена на 302 (временный).
Однако всегда желательно тестировать с 302 (временными) перенаправлениями, чтобы избежать проблем с кэшированием.