
我試圖使用此程式碼重定向子資料夾中的所有直接訪問
RewriteEngine on
RewriteCond %{HTTP_COOKIE} !user_cookie=[^;]
RewriteRule .* http://webhost.org/ [R=301,L]
我意識到它僅適用於 OHP 文件,不適用於 HTML 等其他文件。我嘗試訪問 PHP 文件的鏈接,它按我的計劃工作,但是當我訪問帶有.html
擴展名的其他文件時,它不會重定向,就好像它忽略了.htaccess
.
我是新來的.htaccess
。我究竟做錯了什麼?
伺服器資訊:
- 全新安裝 Vestacp
- Apache/2.2.15(CentOS 6 x64)
答案1
您發布的程式碼不一定適用於「直接」請求。它適用於未設定 cookie(即未在Cookie
HTTP 請求標頭中發回)的情況 - 這不是同一回事。 (大概您正在設定「會話」cookie?但是,瀏覽器對「會話」的定義各不相同,因此這些 cookie 最終可能會更多執著的比你預期的。
如果它“僅適用於 PHP 文件,但不適用於 HTML 等其他文件”,那麼這是因為瀏覽器Cookie
出於某種原因沒有向 PHP 文件發送請求的 HTTP 請求標頭。也許是 PHP 檔案“不正確”並且Cookie:
應該發送標頭 - 就像 HTML 文件一樣?
PHP 和 HTML 檔案之間的差異可能在於快取、網域和/或 URL 路徑。這與你的腳本無關.htaccess
。
要檢查“直接訪問”,更常見的是檢查空Referer
標頭。然而,您使用的這種(以及任何)方法並不完全可靠。