为什么这不起作用,htaccess,捕获域 ext 并在 cond 中使用

Why does this not work, htaccess, capture domain ext and use in cond

为什么这个重写规则不起作用?

RewriteCond %{HTTP_HOST} domain.(se|dk)/shop/$ [NC]
RewriteRule ^ https://domain. [R=302,L,NE]

我正在尝试捕获所有对 domain.dk/shop/ 和 domain.se/shop/ 的请求并将它们重定向到 domain.dk 或 domain.se.

似乎是什么问题?

整个 htaccess

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# Redirect everything to HTTPS
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

RewriteCond %{HTTP_HOST} domain.(se|dk)$ [NC]
RewriteRule ^shop$ https://domain.%1/ [R=302,L,NE]

</IfModule>

HTTP_HOST没有任何路径信息,只有"domain.se"。路径信息必须在规则的正则表达式匹配中:

RewriteCond %{HTTP_HOST} domain.(se|dk)$ [NC]
RewriteRule ^shop$ https://domain.%1/ [R=302,L,NE]

此外,您需要使用 %1 反向引用,它引用条件中的分组。 反向引用来自规则的分组(没有)。