我有一个由php开发的Web应用程序。我可以通过使用http://www.example.com
之类的网址来访问该应用程序。现在我需要,只要用户在网址中输入example.com
,它就会显示https://www.example.com
而不是http://www.example.com
。
是否可以或者我必须在代码开发过程中从头开始关注https
?
请帮我解决这个问题。
提前致谢。
答案 0 :(得分:3)
让您的服务器发出HTTP 301状态,并将Location标头重定向到HTTPS站点。
您可以使用header
函数在PHP级别执行此操作,但我会在Web服务器级别执行此操作。在Apache HTTPD(您没有指定服务器)中,在端口80 HTTP站点的虚拟主机配置中只需要Redirect 301 / https://example.com/
。
(注意:Apache Redirect指令将维护URI的其余部分,因此http://example.com/foo
将重定向到https://example.com/foo
,依此类推)
答案 1 :(得分:0)
在htaccess中尝试
用于具有域
的Web服务器 RewriteEngine on
RewriteCond %{REQUEST_URI} ^https://www.example.com/(.*)$
RewriteRule %{REQUEST_URI} https://www.example.com/$1 [S=1,L]
RewriteCond %{HTTP_HOST} ^example\.com [NC,OR]
RewriteCond %{HTTP_HOST} [A-Z]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
用于本地服务器
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_URI} ^https://localhost/(.*)$
RewriteRule %{REQUEST_URI} https://localhost/$1 [S=1,L]
RewriteCond %{HTTP_HOST} ^localhost [NC,OR]
RewriteCond %{HTTP_HOST} [A-Z]
RewriteRule ^(.*)$ https://localhost/kernel/$1 [R=301,L]