【问题标题】:Why same .htaccess commands working differently in localhost and server?为什么相同的 .htaccess 命令在 localhost 和服务器中的工作方式不同?
【发布时间】:2015-09-01 08:11:49
【问题描述】:

我有以下 .htaccess 命令用于重定向 php 页面

RewriteRule ^(.*)$ index.php/$1 [L]

此代码在 localhost 中运行。它在 Web 服务器中不运行。但是当代码稍作修改时,它可以在服务器上运行。

RewriteRule ^(.*)$ index.php?/$1 [L]

为什么会这样?

【问题讨论】:

  • 第一个 url 使用称为路径信息的东西。第二个 url 使用查询字符串。我假设您正在使用某种框架?
  • 不,我正在为我的核心 php 项目进行 url 重写
  • 当我更改了规则后,我必须使用 parse_url 函数,这样我就无法通过 $_GET 方法获取任何值
  • 好吧,您没有将键值对作为查询字符串传递,因此$_GET 不包含任何有用的信息。如果你想使用?url=/$1,你可以使用$_GET["url"]

标签: php apache .htaccess url-rewriting


【解决方案1】:

发生这种情况的原因是您可能运行了不同的 PHP 版本。我相信这已经被认为是一个 PHP 错误有一段时间了,但不要引用我的话。您可能在本地主机上运行较早版本的 PHP(可能是 5.2.X),而在 Web 服务器上运行较新版本。这不是.htaccess 问题。这是PHP。您只需要根据版本知道使用哪一个即可。

也将此答案作为参考。

https://stackoverflow.com/a/4365161/330987

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    相关资源
    最近更新 更多