重写Apache中的默认/(index.php)

时间:2013-02-19 09:28:35

标签: apache mod-rewrite redirect

目前,服务器将任何HTTP请求重定向到http://www.example.com/index.php为HTTPS。

RewriteEngine on

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} index.php$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

然而问题是当向http://www.example.com发出请求时,因为没有进行重定向。

如果空{REQUEST_URI},如何让服务器重定向到HTTPS。 (我假设它是空的)

修改:
在akostadinov的回答之后,我修改了.htaccess以包含这个,并且重写有效。我会在这里发布,以防以后有人遇到同样的问题!

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTPS} !on
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

1 个答案:

答案 0 :(得分:0)

请求为/。请参阅下面的curl -v输出(主干)。顺便说一句,如果你真的不需要匹配特定的条件,你可以省略URI条件。

$ curl -v example.com
* About to connect() to example.com port 80 (#0)
*   Trying 192.0.43.10...
* connected
* Connected to example.com (192.0.43.10) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.27.0
> Host: example.com
> Accept: */*
...