根目录中的文件无法访问mod_rewrite PHP

时间:2012-01-02 16:38:54

标签: php apache .htaccess mod-rewrite

文件结构如下所示

  • 根/ X
  • 根/ X / y.php
  • 根/ index.php的

.htaccess代码

RewriteRule (.*) /x/$1 [L]

htaccess文件的作用是从网址中删除文件夹名称(x),以便访问y.php = http://localhost/y.php而不是http://localhost/x/y.php。这有效但我现在的问题是index.php显示如下:

Index of /x

Parent Directory
y.php

我无法访问index.php。我相信x成了根文件夹。 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

首先,您不应该在公共服务器上允许这样的索引显示...在您的localhost上它可能没问题,但是,您仍然可以通过添加以下内容在.htaccess中禁用它:

Options -Indexes

要解决您的问题,您应该在重写规则之前添加以下条件,以便规则不适用于磁盘上实际存在的任何文件或目录:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

这不会解决您的问题,因为.htaccess会重定向到不存在的 /x/index.php 文件...这就是为什么它显示了 / x 目录