我访问了'超级文件夹的.htaccess文件并意外添加了
Rewrite / http://google.com/
这是使用php完成的。现在我无法访问任何目录中的php文件以恢复更改。
我是否可以在root的子目录中执行任何操作来停止该文件夹中的重定向?
谢谢。
请不要询问有关'意外'的更多细节。愚蠢的错误
答案 0 :(得分:5)
我联系了服务器管理员,都嘲笑它..虽然如果我使用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
directive继承父目录中的任何规则,否则不会应用父目录中的规则。
因此,您只需使用以下命令创建htaccess文件:
RewriteEngine On
使用FTP将其上传到您的子目录,并上传您用于更改父目录的htaccess文件的php文件。然后只需使用您的浏览器并转到子目录中的那个php文件。
简单地打开子目录中的重写引擎,没有任何规则,意味着:
RerwiteRule
),因此根本不会发生任何事情听起来很直观,但这就是它的工作方式。
答案 1 :(得分:1)
使用您的FTP客户端连接。在FTP客户端中启用隐藏文件(尝试FileZilla,这个允许你这样做)。删除超级目录中的.htaccess
。如果此文件中包含其他数据,请将其复制到本地计算机,进行更改并重新上传。
以下是一些帮助:http://www.intrepid.com.au/how-to-view-htaccess-with-filezilla/