【问题标题】:HTTPS Requests Ignoring Rewrite RuleHTTPS 请求忽略重写规则
【发布时间】:2011-06-14 09:00:56
【问题描述】:

我的 .htaccess 文件中有一个简单的重写规则,可以为我的访问者创建搜索引擎友好的 URL。该规则适用于 http 连接,但由于某种原因,当通过 https 发出请求时,该规则将被忽略。

这是 .htaccess 文件的内容:

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z\-]+)/$ /$1.php [L]
</IfModule>

关于为什么 https 请求忽略规则,但 http 请求承认规则的任何想法或建议?任何帮助将不胜感激。我花了一整天的时间在谷歌和各种论坛上都无济于事。

谢谢!

【问题讨论】:

  • 为什么你认为.php 对搜索引擎不友好?
  • 你是对的 - .php 是搜索引擎友好的。我想我指的是 Tim Berners Lee 所说的酷 URI - w3.org/Provider/Style/URI

标签: apache ssl rewrite mamp


【解决方案1】:

据我所知,您的规则与端口或协议无关。我有根据的猜测是,您的 HTTP 和 HTTPS 站点在不同的设置下运行:它们要么使用不同的文档根目录,要么第二个不使用 AllowOverride 任何东西(它需要 AllFileInfo)。

【讨论】:

  • 感谢您的回答。我想你是正确的。我正在使用 MAMP(类似于 Windows 的 WAMP/Linux 的 XAMPP)。我不太确定他们如何预配置 SSL 虚拟主机。我会做一些研究,看看我能不能弄清楚。感谢您花时间回答我的问题。
【解决方案2】:

假设它们都来自同一个 节,请将 https 的 AllowOverride 指令与非 ssl 指令进行比较。

【讨论】:

  • 感谢您的提示。听起来我需要查看我的 SSL 虚拟主机来解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
  • 2013-09-27
  • 2018-11-13
  • 1970-01-01
  • 2019-03-13
  • 1970-01-01
相关资源
最近更新 更多