为什么这不起作用,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
反向引用,它引用条件中的分组。 反向引用来自规则的分组(没有)。