我正在尝试为我的.htaccess文件编写RewriteRule。具体来说,每当用户访问特定的子目录时,我希望它重写以强制进行HTTPS连接。
例如,每当有人访问:http://www.mydomain.com/subdirectory
(以及该“子目录”的任何其他子目录)时。
我希望它重写为https://www.mydomain.com/subdirectory
我尝试了以下内容,但它似乎创建了一个循环:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.mydomain.com/subdirectory/$1 [R=301,L]
此外,此.htaccess文件位于我的域的根目录中。
有关如何修改RewriteRule的任何想法?
非常感谢!
答案 0 :(得分:18)
我会把它放到域的根目录中:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(subdirectory/.*)$ https://www.mydomain.com/$1 [R=301,L]
答案 1 :(得分:11)
这项工作对我来说,这允许您重定向到https特定文件夹,只需在文件夹中添加一个htaccess文件,其中包含以下内容:
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
答案 2 :(得分:2)
你想根据Floern的回复添加子目录,见下文:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(subdirectory/.*)$ https://www.mydomain.com/subdirectory/$1 [R=301,L]
答案 3 :(得分:1)
将下面给出的行添加到该子目录的.htaccess文件中:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.domain.com/subdirectory/$1 [L,R=301]
答案 4 :(得分:0)
如果您不希望地址栏显示子文件夹,请使用此选项。它会将yourdomain.com
重定向到yourdomain.com/subfolder
,但看起来仍然在yourdomain.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?yourprimarydomain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
答案 5 :(得分:0)
尝试一下
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
答案 6 :(得分:-1)
尝试
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://www.mydomain.com/subdirectory/$1 [R=301,L]