【问题标题】:apache url rewrite connection reset on root directory根目录上的apache url重写连接重置
【发布时间】:2013-11-18 22:33:04
【问题描述】:

在我的 apache sites-available/default 文件中,我将配置更改为以下:

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All             //originally was AllowOverride None
    FallbackResource rewrite.php  //i added this line, too
    Order allow,deny
    allow from all
</Directory>

我想在我自己的 rewrite.php 文件中处理所有 url 调用。这有效,当我访问我的网站 http://192.168.1.104:4567/web/knxzkcha 但当我去 http://192.168.1.104:4567/web/ 时不起作用。我在 Firefox 中遇到了这个问题:The connection to the server was reset while the page was loading.

索引站点http://192.168.1.104:4567/web/index.php 完美运行并向我展示了我的 index.php 文件。我只想让我在访问根目录时也显示索引文件。 /var/www 指向/web 目录。我有一些 ubuntu 12.04 server 64 LTS 版本

当我重新编写配置行时,根目录默认为我提供索引文件。

【问题讨论】:

  • 您可以发布您的.htaccess 文件吗?
  • 我没有。至少我已经删除了我拥有的那个,阅读后我可以将FallbackResource直接放入配置而不是.htaccess
  • 尝试评论 FallbackResource 行并重新启动 Apache。
  • @anubhava 下一步呢?这就像我之前的默认配置一样工作
  • 在注释掉FallbackResource 后,您是否仍然收到server was reset 错误?

标签: php apache .htaccess mod-rewrite url-rewriting


【解决方案1】:

您不需要添加AllowOverride All,通过检查当前目录和所有带有AllowOverride None 的父目录中的.htaccess 文件的存在来告诉apache 避免IO,这是提高速度的好方法。如果您可以编辑 Apache 配置,请避免使用 .htaccess 文件。

现在FallbackResource 是一个相当新的功能,可能存在一些错误。您是否检查了错误日志以获取详细信息?你能用LogLevel debug试试吗?

看来你的问题是目录,也许你可以通过在请求目录时强制使用你的后备来解决它,尝试添加:

DirectoryIndex  rewrite.php

【讨论】:

  • 我只添加了DirectoryIndex rewrite.php这一行,它就起作用了。唯一的问题是默认根目录通过了重写 php 脚本,而不是默认为 index.php。但这不是问题,因为当没有检测到 url 路径时,我只是将 index.php 包含在 rewrite.php 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-29
  • 2017-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多