我有一个由 php 开发的 Web 应用程序。我可以通过使用http://www.example.com
. 现在我需要任何时候,用户example.com
输入它会显示的 url,https://www.example.com
而不是http://www.example.com
. https
是否有可能或者我必须在代码开发过程中从一开始就照顾好自己?请帮助我如何做到这一点。
提前致谢。
让您的服务器发出 HTTP 301 状态,并将 Location 标头重定向到 HTTPS 站点。
您可以使用该header
函数在 PHP 级别执行此操作,但我会在 Web 服务器级别执行此操作。在 Apache HTTPD(您没有指定您的服务器)中,只需要Redirect 301 / https://example.com/
在端口 80 HTTP 站点的虚拟主机配置中。
(注意:Apache Redirect 指令将维护 URI 的其余部分,因此http://example.com/foo
将重定向到https://example.com/foo
等等)
在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]