一直在尋找2天,並不能完全得到正確的解決方案,由於我對這個項目,所以希望有人能幫助缺乏的mod_rewrite和時間限制的理解。的.htaccess中的子目錄「覆蓋」父htaccess的
目的
要改寫到根index.php的所有請求,如果客戶端沒有正確的cookie。 如果客戶端有正確的cookie,可以讓他們按照自己的意願進行瀏覽。
問題
在我的子目錄中的htaccess正在precendence在我的根htaccess的,所以請求,如www.mydomain.com/subdir/index.php arn't被重定向。
我的根的.htaccess
Options FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_COOKIE} !^.*pass.*$
RewriteCond %{REQUEST_URI} !^/index.php$
RewriteRule ^(.*)$ http://www.mydomain.com/index.php?url=$0 [NC]
我子目錄的htaccess
RewriteEngine On
RewriteBase/
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
理想我想創建一個密碼保護區域,所以其他信息所有的請求都被路由到index.php在哪裏可以輸入密碼,並在驗證後創建cookie,允許自由瀏覽內容和子目錄。所以如果有更好的方法來完成這個,那麼請讓我知道,而且我沒有去.htpasswd,因爲我需要自定義登錄,錯誤和啓動頁面。
此外,子目錄的.htaccess是ExpressionEngine URL處理程序。
謝謝。
不管你如何解決這個問題,檢查一個cookie的存在不是很好安全。僞造一個是微不足道的,因爲你沒有驗證cookie中的數據,只是檢查它的存在),所以你的「安全」系統是微不足道的。 –
@Abe只是一個建議,但你有沒有想過實現HTTP認證,如果你唯一的希望允許訪問directorys:http://uk.php.net/manual/en/features.http-auth.php –