.htaccess HTTPS到HTTP不起作用

时间:2013-11-20 13:51:28

标签: php apache .htaccess mod-rewrite redirect

我正在尝试将访问重定向到https://www.domain.co.ukhttp://www.domain.co.uk。我研究了这个,但已经走到了尽头。

很多人,包括这里的人,建议使用:

RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

这是我的整个.htaccess文件:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

我尝试将https重写代码放在<IfModule mod_rewrite.c>上方,下方和内部。但没有运气。

我知道正在读取.htaccess,因为我可以在使用随机字母时返回500内部服务器错误。

感谢您的帮助。

修改

Anubhava发现我的服务器没有侦听端口443,因为我的VirtualHost没有输入。

这是我的httpd.conf

的那一部分

enter image description here

1 个答案:

答案 0 :(得分:0)

如果是WP,则在permalink settings change您网站的http://domain.com网址中显示https://domain.com。如果你使用不同的URL,WP会强制使用该网址。

你的.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>