2012-06-12 28 views
2

我使用香草論壇上已經有在.htaccess這些重寫條件和規則的查詢字符串:Apache的htaccess的認證基於

RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.php\?p=$1 [QSA,L] 

我現在想是增加要求驗證的一些重寫規則(要求有效用戶)只有當我在頁面/vanilla/index.php?p=/categories/general,即只是查詢字符串「p =/categories/general」

謝謝你的幫助!

回答

1

只要我能說 就可以根據URL的查詢字符串添加驗證。

使用mod_rewrite,您只能將一個URL重寫爲另一個,而不指定其他配置規則。

<Location>標記可用於匹配一個URL並要求授權,但Location無法匹配查詢字符串,因此它不起作用。

是否有理由需要使用.htaccess驗證?您能否輕鬆地將邏輯構建到PHP腳本中?

+0

我在網上發現了不同的可能性,但是我無法讓它們中的任何一個爲我的設置工作。這是我發現的一種方式,儘管它不起作用。當我寫目錄路徑時,我得到服務器錯誤500,並且沒有目錄標記,我無法讓腳本觸發。 (來自http://www.lucidiocy.com/2010/07/query-string-based-apache.html) –

+0

有趣的概念,我沒有能夠讓它工作。 500錯誤是因爲'.htaccess'文件中不允許使用''節,只能在'httpd.conf'和vhosts中。我嘗試了其他一些組合,但無法在100%的時間內使其工作。從閱讀這些評論後,即使是這篇文章的作者最終也無法讓它發揮作用,這與我的想法是一樣的。可能是因爲我正在測試Apache 2.4,它在版本2.2中對auth進行了很多改變。 – drew010

+0

感謝您的回覆。根據irc.freenode.net上的#apache,它應該是可能的,但是對於我來說,學習這個小東西的所有apache需求是相當麻煩的。希望它最終能夠奏效。 –