我有域名,并且使用https,例如
http://example.com/
现在我正在创建子域名,如demo1.example.com,demo2.example.com等。
我需要所有子域名必须仅通过https重定向和访问。
我已经在我的.htaccess中编写了代码,如下所示,但是当我访问子域时,它总是重定向到主域。
我的htaccess代码是
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
修改
我的主网站位于root,所有其他子域代码都位于其中一个文件夹中。因此,无论何时创建任何仅指向该文件夹的子域。
答案 0 :(得分:0)
以下内容对我有用。注意:如果您的子域具有自己的.htaccess文件(例如,您的子域中的WordPress网站),则除了主域名.htaccess外,您还必须编辑该.htaccess文件。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^((?!www\.)[^.]+)\.domian\.com$
RewriteRule ^https://%1.domain.com%{REQUEST_URI} [NE,L,R]
您可以在此之上或之下添加其他重写条件,具体取决于您希望它们执行的时间。例如,可以通过https'force'放置Reghbendra Nayak的“ Handle Front Controller ...”代码,它将执行。
答案 1 :(得分:-2)
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://yourdomain.com/$1 [R=301,L]