我的服务器上的/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 /子文件夹显示在根目录下。
答案 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。