伪静态及图片放盗链
?
偽靜態及圖片放盜鏈
一、偽靜態:
從形式上看是一個靜態地址,實際上還是訪問的動態地址,
比如:訪問:http://www.abc.com/news-sport-id123.html
實際上是:http://www.abc.com/news.php?type=sprot&id=123;
作用:主要是利于seo,靜態頁面的方式,比較容易被搜索引擎給搜集。
?Localhost/6.php???? 輸入localhost/6.html 同樣能輸出跟6.php同樣的內容???
?
1、實現原理:
使用apac he的rewrite機制。
rewrite機制:就是一個url的重寫機制,
2、如何開啟重寫模塊,
在httpd.conf文件中進行開啟。
?
3、配置方式:
? 1)直接在配置虛擬主機處進行配置 ,每次修改apache的文件都需要重啟apache
???<VirtualHost *:80>
? #主機名
??ServerName? localhost
?? #開啟重寫引擎
?? RewriteEngine on
?? #寫重寫規則
?? RewriteRule /index.html?/6.php [L]
?? #文件的根目錄路徑
??DocumentRoot?"E:/server/apache/htdocs"
<Directory? "E:/server/apache/htdocs">
?? #結構樣式
? #打開默認的首頁
DirectoryIndex? index.php?index.html
#打開默認索引列表??
???Options? Indexes? FollowSymLinks????
?? #權限
? #權限控制?? 先拒絕后允許
??Order Deny,Allow??
?#允許所有用戶進行訪問
?? AllowOverride All
???Allow from? All???
?</Directory>
</VirtualHost>
?
? 2)分布式配置 具體的.htaccess文件中的配置: 在網站的根目錄下創建一個文件,文件名為.htaccess
?<ifModule rewrite_module>(<IfModulemod_rewrite.c>)
?? #打開重寫引擎
??RewriteEngin on
??#RewriteCond 判斷條件(服務器變量)條件表達式? [條件標志]
??#RewriteRule? 規則url?? 目標url? [規則的標志]
?</ifModule>
?
???????? 示例
<IfModule mod_rewrite.c>
??? RewriteEngine On
??? RewriteCond%{REQUEST_FILENAME} !-d
??? RewriteCond%{REQUEST_FILENAME} !-f
??? RewriteRule ^(.*)$week.php/$1 [L]
</IfModule>
4、具體的語法:
RewriteEngine on? #開啟重寫引擎
RewriteCond?重寫條件,要滿足一定的條件才重寫。
?
CI框架中的重寫規則
第一步:在虛擬主機開啟? AllowOverrideAll
第二步: //配置偽靜態時在CI框架的配置文件 config中修改 URL協議為
$config['uri_protocol']???? = 'PATH_INFO';
?
RewriteCond條件的語法:
RewriteCond?? 判斷依據?? 條件表達式 [條件標志]
?
(1)判斷依據:可以使用服務器變量:
RewriteCond%{REQUEST_FILENAME} !-d
RewriteCond%{REQUEST_FILENAME} !-f
比如:%{REQUEST_FILENAME}?表示請求的文件名稱
比如:%{HTTP_REFERER}:表示請求的來源。
(2)條件表達式:可以是一些標志,或者字符串
?
比如:
-d?? 表示是一個目錄
-f???表示是一個文件
?
RewriteCond%{REQUEST_FILENAME} !-d? //如果請求的路徑不是一個目錄
RewriteCond%{REQUEST_FILENAME} !-f? //如果請求的路徑不是一個文件
(3)[條件標志]
[NC]表示不區分大小寫
[OR],在默認情況下多個條件(RewriteCond)之間是并且的關系。如果我們使用或關系則后臺添加[OR]標志。
?
?
?
RewriteRule? 語法規則
RewriteRule?? 規則的url(可以使用正則)? 目標url? [規則標志]
規則標志:
[F] 表示:表示禁止重寫
[NC] 表示:不區分大小寫
?
如何選擇真靜態和偽靜態?
網站實時性要求高,不要使用靜態化(真靜態,偽靜態均不適宜)。
如果網站訪問量較小,沒有必要使用靜態化技術
如果數據項目不多,但是訪問頻率極大,建議使用真靜態,比如新浪新聞頻道。
如果數據項目海量,使用真靜態會生成海量的html靜態頁面,建議使用偽靜態。
在一個大型網站中,靜態化技術是綜合使用的,這個需要大家經驗的積累,多做項目。(sina網站:新聞頻道,真靜態,基金頻道:偽靜態,管理后臺:不使用靜態技術)
?
?
防盜鏈的方法以及使用
引子:明明引用了一個正確的圖片地址,但顯示出來的卻是一個紅叉或寫有“此圖片僅限于***網站用戶交流溝通使用”之類的“假圖片”。用嗅探軟件找到了多媒體資源的真實地址用下載軟件仍然不能下載。下載一些資源時總是出錯,如果確認地址沒錯的話,大多數情況都是遇上防盜鏈系統了。常見的防盜鏈系統,一般使用在圖片、音視頻、軟件等相關的資源上。
一、什么是防盜鏈系統
????????在確保地址正確的情況下,不能下載相應的資源,均是受到防盜鏈系統的影響,那么究竟什么是防盜鏈系統呢?防盜鏈自然就是防范盜鏈,所以這里先說一下什么是盜鏈。
????????盜鏈是指在自己的頁面上展示一些并不在自己服務器上的內容。通常的做法是通過技術手段獲得它人服務器上的資源地址,繞過別人的資源展示頁面,直接在自己的頁面上向最終用戶提供此內容。比較常見的是一些小站盜用大站的資源(圖片、音樂、視頻、軟件等),對于這些小站來說,通過盜鏈的方法可以減輕自己服務器的負擔,因為真實的空間和流量均是來自別人的服務器。
????????防盜鏈系統就是防范盜鏈的系統,防止別人通過一些技術手段繞過本站的資源展示頁面,盜用本站的資源,讓繞開本站資源展示頁面的資源鏈接失效。實施防盜鏈系統后,因為屏蔽了那些盜鏈的間接資源請求,從而可以大大減輕服務器及帶寬的壓力,也正如此,越來越多的站點都開始實施防盜鏈技術。
二、窺視防盜鏈
????????現在大家應該知道了為什么有真實地址仍然不能下載,這就是防盜鏈的作用。凡事必有因果,為什么可以防盜鏈呢,其實現原理是什么?防盜鏈又是如何實現的呢?
????????提到防盜鏈的實現原理就不得不從HTTP協議說起,在HTTP協議中,有一個表頭字段叫referer,采用URL的格式來表示從哪兒鏈接到當前的網頁或文件。換句話說,通過referer,網站可以檢測目標網頁訪問的來源網頁,如果是資源文件,則可以跟蹤到顯示它的網頁地址。有了referer跟蹤來源就好辦了,這時就可以通過技術手段來進行處理,一旦檢測到來源不是本站即進行阻止或者返回指定的頁面。
如果想對自己的網站進行防盜鏈保護,則需要針對不同的情況進行區別對待。如果網站服務器用的是apache,那么使用apache自帶的Url Rewrite功能可以很輕松地防止各種盜鏈,其原理是檢查refer,如果refer的信息來自其他網站則重定向到指定圖片或網頁上。
三、怎么使用防盜鏈
???????在開始防盜鏈之前,首先我們要了解重寫規則,我們可以瀏覽Apache手冊/指令速查/RewriteCond TestString CondPattern 中了解關于重寫的信息。
我們首先得了解referer,也就是網頁的來源哪里,我們可以打開一個php,里面打印一下$_SERVER
?
?
示例代碼:
RewriteCond %{HTTP_REFERER}??? !http:\/\/better.com\/.*
RewriteRule.*\.(jpg|jpeg|gif|png|txt)??? 110.gif
總結
- 上一篇: 电脑桌面打开计算机打开多个,如何在电脑桌
- 下一篇: You should consider