我访问了一个“超级文件夹”的 .htaccess 文件并意外添加了
Rewrite / http://google.com/
这是使用 php 完成的。现在我无法访问任何目录中的 php 文件来恢复更改。
我可以在 root 的子目录中做些什么来停止该文件夹内的重定向吗?
谢谢你。
并且请不要询问有关“事故”的更多细节......愚蠢的错误
我联系了服务器管理员,都笑了。虽然如何阻止它重定向仍然很有趣,尽管如果我使用 mod_rewrite 不应该发生这种情况。
使用 mod_alias' Redirect
,你就完蛋了。该指令全面应用,从 htaccess 文件所在的路径节点(如果它在 htaccess 文件中)或<Directory>
它所在的块的路径节点开始。所以唯一的解决方案是让管理员删除它。
但是,对于 mod_rewrite,对于 htaccess 文件,它的作用与在<Directory>
块中的作用不同。目录中路径节点中的 htaccess 文件中的规则优先于父目录中的 htaccess 文件中的规则。因此,如果您有 2 个 htaccess 文件:
/.htaccess:
RewriteEngine On
RewriteRule ^/? http://google.com/
在/tmp/.htaccess中:
RewriteEngine On
RewriteRule ^/?tmp/ http://stackoverflow.com/
然后你去http://yourdomain.com/tmp/
,你会被重定向到,http://stackoverflow.com/
因为 tmp 目录中的规则优先于父目录中的规则。实际上,父目录中的规则根本不会应用,除非您使用该RewriteOptions Inherit
指令从父目录继承任何规则。
因此,您可以简单地使用以下内容创建一个 htaccess 文件:
RewriteEngine On
使用FTP上传到你的子目录,上传你用来改变父目录的htaccess文件的php文件。然后只需使用您的浏览器并转到子目录中的那个 php 文件。
在您的子目录中简单地打开重写引擎,没有任何规则,意味着:
RerwiteRule
的),根本没有任何反应听起来违反直觉,但这就是它的工作原理。
使用您的 FTP 客户端进行连接。在您的 FTP 客户端中启用隐藏文件(试试 FileZilla,这个可以让您做到这一点)。在您的超级目录中删除.htaccess
。如果此文件中有其他数据,请将其复制到本地计算机,进行更改并再次上传。
这里有更多帮助: http: //www.intrepid.com.au/how-to-view-htaccess-with-filezilla/