1

自分がやろうとしていたことは天才だと思っていましたが、うまく機能していないようです。

一時ファイルを含むパブリック サブドメインがあります。訪問したときにリストされているすべてのファイルを見ることができるようにしたくありません。サーバーからファイルを取得するときにいくつかのスクリプトが台無しになるため、パスワードで保護したくありません。また、リストを表示できるようにしたいので、空白の index.html がリストを停止したくありません。

だから私の天才のストロークは、次の.htaccessようなファイルを持つことでした:

RewriteEngine On
RewriteCond %{REQUEST_URI} !/#dir
RewriteCond %{REQUEST_URI} !/?show=dir
RewriteRule ^$ http://example.com/ [nc]

私の理論は、訪問files.example.comするとリダイレクトされるexample.comが、訪問files.example.com/?show=dirするかfiles.example.com/#dirしないかということでした。そして明らかに?show=dir何もしないので、すべてのファイルが通常どおりリストされます。

RewriteConditionsは効果がありません。

これは可能ですか?

4

1 に答える 1

2

#dirまず、URL フラグメント (部分) はサーバーに送信されないため、照合できません。それはクライアント側だけのものです。

?show=dir次に、変数内のクエリ文字列 (部分) と照合することはできません。代わり%{REQUEST_URI}に使用する必要があります。%{QUERY_STRING}

だから試してください:

RewriteEngine On
RewriteCond %{QUERY_STRING} !^show=dir$
RewriteRule ^$ http://example.com/ [nc]
于 2013-04-23T19:44:33.027 に答える