2011-05-11 58 views
0

1)我需要驗證連接是由我的同一個網站還是其他人引用。 2),我不能簡單地鍵入HTTP_HOST手動因爲.htaccess文件旨在通過顛覆進行處理並跨越不同HTTP_HOST不同的開發環境共同的價值觀RewriteCond:將HTTP_REFERER與HTTP_HOST匹配的任何解決方法?

因此我們的目標是要找到一個解決辦法,使這項工作條件透明無論環境是什麼,並保持htaccess容易處理svn無需手動修復。

謝謝!

+0

$ _SERVER [HTTP_REFERER]然後使用正則表達式檢查域名?希望通過這種方式,您可以輕鬆地知道請求的來源 – 2011-05-11 16:56:11

回答

1

與Apache 2,你可以這樣做:

RewriteCond %{HTTP_REFERER} ^$ [OR] 
RewriteCond %{HTTP_REFERER} ^[^:/?#]+://([^/?#]+) # get authority 
RewriteCond %1 ^(?:(?:[A-Za-z0-9-._~!$&'()*+,;=:]|%[0-9A-Fa-f]{2})*@)?((?:[A-Za-z0-9-._~!$&'()*+,;=]|%[0-9A-Fa-f]{2})*)(?::\d+)?$ # get host name 
RewriteCond %1/%{HTTP_HOST} !^([^/]+)/\1$ # compare to HTTP_HOST 
RewriteRule^… 

注意HTTP_HOST也可以爲空以預HTTP/1.1請求的情況下。

相關問題