您好我创建了一个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.com或http://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 /
内的所有文件的情况下使其工作感谢。
答案 0 :(得分:1)
远程主机启用MultiViews
选项似乎是一个问题。
将此行放在.htaccess的顶部以关闭MultiViews
:
Options -MultiViews