.htaccess使用子文件夹重写规则强制SSL

时间:2016-04-23 17:36:54

标签: apache .htaccess mod-rewrite ssl

我的服务器上的/app/文件夹中有一个应用程序,我在根URL http://myapp.com上显示以下.htaccess规则:

RewriteEngine On
RewriteRule ^$ /app/ [L]
RewriteCond %{DOCUMENT_ROOT}/app/%{REQUEST_URI} -f
RewriteRule ^(.*)$ /app/$1 [L]

我想要做的是强制使用SSL,以便始终使用https://myapp.com进行此设置。

我尝试过一系列不同的规则,但似乎没有任何东西可以强制使用SSL,并且还会保留/ app /子文件夹显示在根目录下。

2 个答案:

答案 0 :(得分:1)

您可以使用以下内容:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R]
RewriteRule ^$ /app/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /app/$1 [L]

答案 1 :(得分:0)

原来我的主人有自己特定的方式来做这件事。我必须执行以下操作才能使其正常工作:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^ https://%2%{REQUEST_URI} [R=301,L]
RewriteRule ^$ /app/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /app/$1 [L]

现在唯一的问题是我似乎强迫www重定向到非www。