13

「スーパーフォルダーの .htaccess ファイルにアクセスし、誤って追加しました」

Rewrite / http://google.com/

これはphpを使用して行われました。現在、どのディレクトリのphpファイルにもアクセスして変更を元に戻すことができません。

そのフォルダー内のリダイレクトを停止するために、ルートのサブディレクトリでできることはありますか?

ありがとうございました。

そして、「事故」に​​ついてこれ以上詳しく聞かないでください.. ばかげた間違い

4

2 に答える 2

5

サーバー管理者に連絡しましたが、どちらもそれを笑いました.mod_rewriteを使用すると発生しないはずですが、リダイレクトを停止する方法はまだ興味深いです。

mod_alias'Redirectを使用すると、めちゃくちゃになります。そのディレクティブは、htaccessファイルが置かれているパスノード(htaccessファイルにある場合)、またはそれが置かれているブロックのパスノードから始めて、ボード全体に適用されます<Directory>。したがって、唯一の解決策は管理者を取得することです削除します。

<Directory>ただし、mod_rewrite では、htaccess ファイルでは、ブロック内と同じように動作しません。ディレクトリ内のパス ノードにある 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 ファイルに移動します。

ルールなしでサブディレクトリの書き換えエンジンをオンにするだけで、次のことを意味します。

  1. このディレクトリで mod_rewrite をアクティブにしています
  2. このディレクトリでは書き換えエンジンがオンになっているため、すべての親ディレクトリ内のすべてのルールを無視します。
  3. mod_rewrite ルールセットは空白 (実際RerwiteRuleの 's がない) であるため、何も起こりません。
  4. このディレクトリにアクセスすると、書き換えエンジンがオンになっているにもかかわらず、mod_rewrite は何もしないため、書き換えエンジンがオフになっているように見えます。

直感に反するように聞こえますが、それが機能する方法です。

于 2012-09-27T20:39:45.980 に答える
1

FTP クライアントを使用して接続します。FTP クライアントで隠しファイルを有効にします (FileZilla を試してみてください。これで可能です)。スーパーディレクトリで削除.htaccessします。このファイルに他のデータが含まれている場合は、それをローカル コンピューターにコピーし、変更を加えて再度アップロードします。

さらにヘルプがあります: http://www.intrepid.com.au/how-to-view-htaccess-with-filezilla/

于 2012-09-27T12:12:00.687 に答える