停止htaccess重定向

时间:2012-09-27 12:02:36

标签: php .htaccess

我访问了'超级文件夹的.htaccess文件并意外添加了

Rewrite / http://google.com/

这是使用php完成的。现在我无法访问任何目录中的php文件以恢复更改。

我是否可以在root的子目录中执行任何操作来停止该文件夹中的重定向?

谢谢。

请不要询问有关'意外'的更多细节。愚蠢的错误

2 个答案:

答案 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文件。

简单地打开子目录中的重写引擎,没有任何规则,意味着:

  1. 我在此目录中激活了mod_rewrite
  2. 由于在此目录中打开了重写引擎,因此请忽略所有父目录中的所有规则。
  3. 由于mod_rewrite规则集为空(无实际RerwiteRule),因此根本不会发生任何事情
  4. 访问此目录,虽然重写引擎已打开,但mod_rewrite不会执行任何操作,因此就像重写引擎已关闭一样。
  5. 听起来很直观,但这就是它的工作方式。

答案 1 :(得分:1)

使用您的FTP客户端连接。在FTP客户端中启用隐藏文件(尝试FileZilla,这个允许你这样做)。删除超级目录中的.htaccess。如果此文件中包含其他数据,请将其复制到本地计算机,进行更改并重新上传。

以下是一些帮助:http://www.intrepid.com.au/how-to-view-htaccess-with-filezilla/