.htaccess不重定向子文件夹

时间:2017-04-17 16:35:24

标签: .htaccess

您好我创建了一个htaccess文件,通过wrapper.php文件传递每个请愿。

以下是代码:

Options +FollowSymLinks

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /wrapper.php?PATH_INFO=$1 [NC,L,QSA]
</IfModule>

我的文件夹结构就是这个:

* root
  * .htaccess file
  * my-folder
     * admin
         * recover.php

我尝试了localhost中的所有内容(使用xampp)并且完美运行。但问题是当我将我的网站内容上传到主机时,不起作用。

我会解释,如果我访问http://example.comhttp://example.com/admin/我的包装器正确接收参数并能够处理它,但是当我访问http://example.com/admin/recover/时,例如, / admin /中称为recover.php的文件,包装器不处理任何内容。我猜这是RewriteCond %{REQUEST_FILENAME} !-f的东西。但我的问题是为什么在localhost中一切都先通过wrapper.php传递,但在我的托管中它首先调用文件(本例中为recover.php),如果存在的话。

编辑:

我尝试更改包装器,而不是包含一个recover.php文件,当调用/ admin / recover /时,包括recover-password.php

现在工作正常,但不明白为什么在localhost中首先调用包装器而不是实际文件。

我想在不重命名/ admin /

内的所有文件的情况下使其工作

感谢。

1 个答案:

答案 0 :(得分:1)

远程主机启用MultiViews选项似乎是一个问题。

将此行放在.htaccess的顶部以关闭MultiViews

Options -MultiViews