2013-04-23 15 views
1

我以爲我想要做的是天才,但它似乎無法正常工作。使用htaccess重定向根目錄,但仍然有目錄列表訪問後門

我有一個公共子域與臨時文件。我不希望人們在訪問時看到列出的所有文件。我不想密碼保護它,因爲這會在從服務器獲取文件時混亂了幾個腳本,並且我不希望有一個空白的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=dirfiles.example.com/#dir不會;很顯然,因爲?show=dir什麼都不做,它會列出所有我的文件爲正常。

我的RewriteConditions雖然沒有效果。

這可能嗎?

回答

2

首先,您無法匹配URL片段(#dir部分),因爲它不會發送到服務器。這只是客戶端的一件事。其次,您無法與%{REQUEST_URI}變量中的查詢字符串(?show=dir部分)進行匹配,您需要改爲使用%{QUERY_STRING}

所以嘗試:

RewriteEngine On 
RewriteCond %{QUERY_STRING} !^show=dir$ 
RewriteRule ^$ http://example.com/ [nc] 
+0

啊,你真了不起,謝謝!這是完美的。 我知道我正在抓住#的機會。 – gbhall 2013-04-23 19:47:02

相關問題