如何为 https 和子域正确编写 RewriteCond
How to properly write a RewriteCond for https and subdomains
到目前为止,我的 RewriteConditions 已经走到了这一步,但它来自互联网示例的黑客攻击和削减。他们有时表现得有点滑稽,比如在 url 中显示目录,所以我认为我做的不对。
期望的行为:我有多个子域都指向同一个根。基于子域值,我想重定向到根目录中的子文件夹。我也想强制使用 HTTPS。我有多个子域,但为了简洁起见,我只显示两个。所有其他条件几乎相同。
这是我的 .htaccess 代码:`
RewriteEngine On
RewriteCond %{HTTP_HOST} purchase.mydomain.com [NC]
RewriteCond %{REQUEST_URI} !purchase/
RewriteRule (.*) https://purchase.mydomain.com/purchase/ [L]
RewriteCond %{HTTP_HOST} booking.mydomain.com [NC]
RewriteCond %{REQUEST_URI} !booking/
RewriteRule (.*) https://booking.mydomain.com/booking/ [L]
`
谢谢,
麦克
像这样更改您的规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(purchase|booking)\.mydomain\.com$
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]
RewriteCond %{HTTP_HOST} =purchase.mydomain.com
RewriteRule ^((?!purchase/).*)$ /purchase/ [L]
RewriteCond %{HTTP_HOST} =booking.mydomain.com
RewriteRule ^((?!booking/).*)$ /booking/ [L]
目标中的 http://
或 https://
将重定向而不是重写。
到目前为止,我的 RewriteConditions 已经走到了这一步,但它来自互联网示例的黑客攻击和削减。他们有时表现得有点滑稽,比如在 url 中显示目录,所以我认为我做的不对。
期望的行为:我有多个子域都指向同一个根。基于子域值,我想重定向到根目录中的子文件夹。我也想强制使用 HTTPS。我有多个子域,但为了简洁起见,我只显示两个。所有其他条件几乎相同。
这是我的 .htaccess 代码:`
RewriteEngine On
RewriteCond %{HTTP_HOST} purchase.mydomain.com [NC]
RewriteCond %{REQUEST_URI} !purchase/
RewriteRule (.*) https://purchase.mydomain.com/purchase/ [L]
RewriteCond %{HTTP_HOST} booking.mydomain.com [NC]
RewriteCond %{REQUEST_URI} !booking/
RewriteRule (.*) https://booking.mydomain.com/booking/ [L]
`
谢谢,
麦克
像这样更改您的规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(purchase|booking)\.mydomain\.com$
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]
RewriteCond %{HTTP_HOST} =purchase.mydomain.com
RewriteRule ^((?!purchase/).*)$ /purchase/ [L]
RewriteCond %{HTTP_HOST} =booking.mydomain.com
RewriteRule ^((?!booking/).*)$ /booking/ [L]
目标中的 http://
或 https://
将重定向而不是重写。