输入例如http:// mysite,服务器返回https:// mysite / index.php - 这是正确的行为 但是当马上开始使用https时: 例如https:// mysite,服务器只返回https:// mysite /(没有index.php)。 然而,网站加载确定。该问题导致应用程序本身出现一些不正确的行为。因此,当我要求https://时,我也希望得到它包括index.php。
这是httpd conf文件:
# forbid access to the entire filesystem by default
<Directory />
Options None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory /srv/installateur/content/approot/>
RewriteEngine on
RewriteCond %{REQUEST_URI} !index.php
RewriteRule !\.(js|ico|gif|jpg|png|css|swf|pdf|html|csv)$ /index.php [L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Options Indexes MultiViews SymLinksIfOwnerMatch
AllowOverride all
Order allow,deny
Allow from all
</Directory>
# use .htaccess files for overriding,
AccessFileName .htaccess
# and never show them
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
# List of resources to look for when the client requests a directory
DirectoryIndex index.php
感谢您的帮助!
答案 0 :(得分:0)
你不应该这样重写。相反,做两个虚拟主机,一个用于http,另一个用于https,并使用301从http重定向到https,同时保留请求参数。
Official Apache mod_rewrite documentation请参阅“简单重定向”一节