【问题标题】:redirection from HTTP to HTTPS show public folder从 HTTP 重定向到 HTTPS 显示公用文件夹
【发布时间】:2018-07-20 14:58:21
【问题描述】:

我想从 http 重定向到 https。

我尝试使用这个 .htaccess 代码

RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

但会在 url 中显示公用文件夹,

更多解释我的网站是www.example.comwhite 这个代码是这样的www.example.com/public/

我有这个代码是我的 .htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

我想重定向到一个特定的域,如果用户尝试例如:example.com,我需要重定向到www.example.com

有什么办法吗?

【问题讨论】:

  • 你的问题对我来说仍然不清楚..
  • @Philipp,首先感谢您抽出宝贵的时间,我的问题是当我尝试重定向到 HTTPS 时,public 文件夹显示在像这样 www.example.com/public/ 的 url 中,我需要避免它
  • 要明确 - 如果您转到 http://www.example.com/,.htacces 当前会将您重定向到 http://www.example.com/public
  • @Philipp 是的,当我添加到重定向代码时,如果我尝试例如这个 url http://www.example.com/,.htacces 当前会将您重定向到 https://www.example.com/public/
  • 如果您删除代码并直接转到https://www.example.com,会发生什么?

标签: .htaccess http redirect https


【解决方案1】:

发生这种情况是因为您还请求 RewriteRule 中的 URI。您需要将规则更改为以下内容:

RewriteEngine On
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

您可以看到此规则在 here/public/ URI 一起工作,并且仅适用于 https://example.com。确保在测试之前清除缓存。

【讨论】:

  • 这是工作,先生,但是当我制作其他页面时,例如example.com/test 它会像这样https://example.com/?test 我可以放弃? 吗?
  • 我认为该问题是由您的其他规则引起的。将这些新规则置于这些规则之上,以便它们首先运行。
  • 如果我符合规则,给我?的错误,如果我超出规则,我尝试example.com/test重定向我到https://example.com
  • 是的,上面的规则就是这样做的。所以它正在工作......?
  • 不,它总是将我重定向到第一页
猜你喜欢
  • 2017-06-01
  • 2020-07-23
  • 2020-11-11
  • 1970-01-01
  • 2014-02-06
  • 2012-03-27
  • 1970-01-01
  • 2019-09-10
  • 2017-10-06
相关资源
最近更新 更多