我正在使用cPanel主机,不幸的是,该主机不允许我访问Apache conf文件以设置任何VirtualHosts
。我的域名在一个子文件夹中。我现在也在尝试强制SSL以及强制www
。
我的要求:
以下是我的.htaccess文件中的内容:
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)example.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
我进行了各种尝试,这些尝试似乎使我达到了我的一个或两个要求,但并非同时满足所有要求。
感谢您的帮助。
答案 0 :(得分:0)
我快到了。在第二行之后,我必须添加几个RewriteConds
。不在HTTPS上,或者不在www:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
最后一组规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [NE,L,R]
RewriteRule ^$ /subfolder/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1 [L]
经过测试,它会强制在域中使用SSL和WWW,并将所有内容保留在子文件夹中。