【问题标题】:change my web application's url更改我的网络应用程序的网址
【发布时间】:2013-01-26 06:44:18
【问题描述】:

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

提前致谢。

【问题讨论】:

  • 因为你有ssl证书..在某些情况下你需要关心它
  • 你可以简单地重定向到主页?

标签: php http https


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在htaccess中试试

    用于具有域的网络服务器

     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]
    

    【讨论】:

    • 我有像localhost/alertR/admins 这样的网址,正如你所说,我已经做了相应的操作。在我的 .htaccess 文件中,我输入了类似 RewriteCond %{HTTP_HOST} ^localhost/alertR/admins/ [NC,OR] RewriteCond %{HTTP_HOST} [AZ] RewriteRule ^(.*)$ localhost/alertR/admins/$1 [R=301,L ] 但它不起作用。
    • @Srim 我也将 htaccess 用于本地服务器
    • 感谢您的更新。我只写了上面的代码。我在本地系统中使用 xampp,并将其安装在 C 盘中。在 htdocs 下,其中一个文件夹是 alertR。我将 .htaccess 文件保存在该 alertR 文件夹下。现在的问题是,如果我尝试通过 localhost/alertR 运行此应用程序,它会更改为 https,但整个 url 会变为 localhost/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e/e,那么显然,我找不到对象!错误。那么解决方案会是什么?你能检查一下吗?
    • @Srim 我认为您的 Https Root 与 Http Root 不同。现在这对我的 htaccess 代码的新更改并不重要
    • 实际上关于这种情况我是新手。您能否让我知道如何检查 Https 的根目录。对于一种信息,我在该 htdocs 下有另一个应用程序(joomla)。当我尝试打开该文件夹时,它会采用 https 并正常工作。
    猜你喜欢
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多