【问题标题】:htaccess directive conflicting with https -- 404 not foundhtaccess 指令与 https 冲突——找不到 404
【发布时间】:2018-03-18 17:21:57
【问题描述】:

我有一个简单的问题(我认为)。

我的网站正确做什么 -- http://example.com/mypage 使用的 URL -> /var/ww/html/mypage.php |简而言之,它实质上允许从 URL 中删除 php 扩展名。

我的预期结果是对https 做同样的事情。但是我返回了 404。所以我的重写条件对于https 不能正常工作,但对于http 工作正常。

这是 .htaccess 文件:

RewriteEngine On

Options -MultiViews

RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

使用此设置,我必须指定%{HTTPS} 吗?我还有什么遗漏的吗?

【问题讨论】:

  • HTTPS 应该没有什么区别。但是... SSL 是如何配置的?如果未在 VirtualHost 容器中为端口 443(您的 SSL 主机)设置 AllowOverride,那么您的 .htaccess 文件将不会被处理?

标签: apache .htaccess apache2.4


【解决方案1】:

尝试在“RewriteEngine On”之后添加这两行

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]]

希望它有效。虽然这会将 http:// 替换为 https://

【讨论】:

  • 否定 - 不可以 - 另外,为了将来参考,“代码删除”是不受欢迎的......尝试解释您的代码的含义以及您使用它的为什么。 .
  • 这似乎与问题无关?! (在RewriteRule 指令的末尾还有一个错误的]。)
猜你喜欢
  • 1970-01-01
  • 2017-02-20
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 2021-07-02
  • 1970-01-01
  • 2014-11-15
相关资源
最近更新 更多