1

我有一个由 php 开发的 Web 应用程序。我可以通过使用http://www.example.com. 现在我需要任何时候,用户example.com输入它会显示的 url,https://www.example.com而不是http://www.example.com. https是否有可能或者我必须在代码开发过程中从一开始就照顾好自己?请帮助我如何做到这一点。

提前致谢。

4

2 回答 2

3

让您的服务器发出 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等等)

于 2013-02-11T07:18:15.950 回答
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]
于 2013-02-11T07:21:14.167 回答