将域重定向到子域 + 使其成为 https
re-direct a domain to a sub-domain + make it https
这有点奇怪:
我需要我的网站做两件事(其中一件已经在工作):
如果用户尝试通过 HTTP:// 访问该域,它将被替换为 https:// - 这是为了 google 中的 SEO,并让用户感到更安全-
用于加载网站的站点文件夹需要是站点的子域文件夹
奇怪的是,第二部分正在运行,我想通了 - 但是我不确定如何合并这两个请求:
HTACCESS
RewriteEngine on
RewriteCond %{HTTP_HOST} ^trippy\.co\.nz$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.trippy\.co\.nz$
RewriteCond %{REQUEST_URI} !update.trippy.co.nz/
RewriteRule (.*) /update.trippy.co.nz/ [L]
但我不确定如何让网站显示为
我试过:
RewriteEngine On
RewriteCond %{HTTP_HOST} update\.trippy\.co\.nz [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://update.trippy.co.nz/ [R,L]
但随后网址显示为:https://update.trippy.co.nz
我需要保持 https://trippy.co.nz/
这里的任何帮助都非常好,我知道这是一个奇怪的情况。
谢谢,
沃利
...but then the web address displays as: https://update.trippy.co.nz
您似乎正在重定向到子域本身,而不是子域的子目录,就像您在第一条规则中所做的那样。您也可能以错误的顺序放置指令 - 外部重定向需要先进行 - 否则您将公开子域的子目录,这似乎不是本意。
请尝试以下操作:
RewriteEngine On
# Redirect HTTP to HTTPS
RewriteCond %{HTTP_HOST} ^(www\.)?trippy\.co\.nz [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://%{HTTP_HOST}/ [R,L]
# Rewrite all requests to the subdomain's subdirectory
RewriteCond %{HTTP_HOST} ^(www\.)?trippy\.co\.nz [NC]
RewriteRule !^update\.trippy\.co\.nz/ /update.trippy.co.nz%{REQUEST_URI} [L]
不需要第二个规则块中的额外条件,因为可以直接在 RewriteRule
中执行检查并使用 REQUEST_URI
服务器变量而不是 </code> 反向引用在<em>替换</em>字符串中。</p>
<p><code>R
本身就是一个临时 (302) 重定向。一旦您确认它工作正常,您可能想将其更改为 R=301
(永久)。
这有点奇怪:
我需要我的网站做两件事(其中一件已经在工作):
如果用户尝试通过 HTTP:// 访问该域,它将被替换为 https:// - 这是为了 google 中的 SEO,并让用户感到更安全-
用于加载网站的站点文件夹需要是站点的子域文件夹
奇怪的是,第二部分正在运行,我想通了 - 但是我不确定如何合并这两个请求:
HTACCESS
RewriteEngine on
RewriteCond %{HTTP_HOST} ^trippy\.co\.nz$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.trippy\.co\.nz$
RewriteCond %{REQUEST_URI} !update.trippy.co.nz/
RewriteRule (.*) /update.trippy.co.nz/ [L]
但我不确定如何让网站显示为
我试过:
RewriteEngine On
RewriteCond %{HTTP_HOST} update\.trippy\.co\.nz [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://update.trippy.co.nz/ [R,L]
但随后网址显示为:https://update.trippy.co.nz
我需要保持 https://trippy.co.nz/
这里的任何帮助都非常好,我知道这是一个奇怪的情况。
谢谢,
沃利
...but then the web address displays as:
https://update.trippy.co.nz
您似乎正在重定向到子域本身,而不是子域的子目录,就像您在第一条规则中所做的那样。您也可能以错误的顺序放置指令 - 外部重定向需要先进行 - 否则您将公开子域的子目录,这似乎不是本意。
请尝试以下操作:
RewriteEngine On
# Redirect HTTP to HTTPS
RewriteCond %{HTTP_HOST} ^(www\.)?trippy\.co\.nz [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://%{HTTP_HOST}/ [R,L]
# Rewrite all requests to the subdomain's subdirectory
RewriteCond %{HTTP_HOST} ^(www\.)?trippy\.co\.nz [NC]
RewriteRule !^update\.trippy\.co\.nz/ /update.trippy.co.nz%{REQUEST_URI} [L]
不需要第二个规则块中的额外条件,因为可以直接在 RewriteRule
中执行检查并使用 REQUEST_URI
服务器变量而不是 </code> 反向引用在<em>替换</em>字符串中。</p>
<p><code>R
本身就是一个临时 (302) 重定向。一旦您确认它工作正常,您可能想将其更改为 R=301
(永久)。