我在 Gitlab 頁面上托管了一個靜態網頁。網頁的網址是myname.gitlab.io
我有另一個托管的網站,hostgator其中包含 URL "mysecondwebsite.com"。"mysecondwebsite.com"有數千個靜態 html 頁面托管在各種路徑上,如,"mysecondwebsite.com/charts/folder1/1.html"等。"mysecondwebsite.com/charts/folder1/2.html""mysecondwebsite.com/charts/folder1/3.html"
我不想"mysecondwebsite.com"直接訪問,也不想訪問其中的頁面。因此,我啟用了按預期作業的熱鏈接保護。現在,我還想允許訪問"mysecondwebsite.com" ONLY FROM myname.gitlab.io。該網站有超鏈接串列,單擊時應打開相應的頁面 "mysecondwebsite.com"。為了實作這一點,我.htaccess在 hostgator 上的檔案中輸入了以下內容,但沒有幫助。我看到 403 被禁止
# IP to allow
order allow,deny
deny from all
allow from gitlab.io
當前防盜鏈設定 -
# DO NOT REMOVE THIS LINE AND THE LINES BELOW HOTLINKID:r2xGl7fjrh
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mysecondwebsite.com/.*$ [NC]
RewriteRule .*\.(.*|jpg|jpeg|gif|png|bmp|tiff|avi|mpeg|mpg|wma|mov|zip|rar|exe|mp3|pdf|swf|psd|txt|html|htm|php)$ https://mysecondwebsite.com [R,NC]
# DO NOT REMOVE THIS LINE AND THE LINES ABOVE r2xGl7fjrh:HOTLINKID
我絕不是網路托管方面的專家。請問我能得到一些幫助來讓它作業嗎?
已更新的 htaccess
Options All -Indexes
RewriteEngine on
RewriteCond %{HTTP_REFERER} !somename\.gitlab\.io [NC]
RewriteRule .* - [F]
uj5u.com熱心網友回復:
allow from gitlab.io不適用于您似乎期望的 http 參考標頭。相反,它基于發出請求的用戶的 IP 地址作業。
相反,您想使用一些東西來檢查參考者并在它不包含myname.gitlab.io或您自己網站的主機名時拒絕訪問。您可以mod_rewrite通過在檔案中放置以下內容來做到這一點.htaccess:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://((myname\.gitlab\.io)|((www\.)?mysecondwebsite\.com))/ [NC]
RewriteRule .* - [F]
這將允許來自您的 gitlab 站點的參考者,然后允許這些頁面獲取更多資源,例如影像、js 和 css。在這個規則中:
RewriteEngine on- 打開重寫,這需要在你的檔案中指定一次,.htaccess并且在所有重寫規則和條件之間共享RewriteCond- 指定下一個重寫規則的條件!表示下面的正則運算式應該被否定(不匹配)^是正則運算式的開頭NC是“無大小寫”,表示此規則不區分大小寫,適用于大寫和小寫輸入RewriteRule是實際的規則.*表示它匹配所有 URL(在這種情況下,上面指定的條件很重要)-表示沒有目標網址F表示它應該顯示“禁止”狀態,而不是重定向或內部更改 URL。
這種方法的問題是它會禁止一些實際從 gitlab 參考的請求。并非所有瀏覽器在所有情況下都實際發送參考標頭。
uj5u.com熱心網友回復:
請您分享您正在考慮的例外規則腳本是什么?
這只是@StephenOstermiller 出色答案的替代方案......
相反,您可以保持現有的“熱鏈接保護”腳本不變,由控制面板 GUI 生成(并根據需要通過 GUI 進行任何更改)。但在您的熱鏈接保護之前包括一個附加規則,以便為您需要授予訪問權限的任何域設定例外。
# Abort early if request is coming from an "allowed" domain
RewriteCond %{HTTP_REFERER} ^https://myname\.gitlab\.io($|/)
RewriteRule ^ - [L]
# Normal hotlink-protection follows...
當請求來自允許的域時,這可以防止處理熱鏈接保護。因此允許訪問。
這確實假設您沒有其他應按照此規則處理的指令。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/456031.html
