htaccess 偽靜態規則

htaccess 偽靜態規則

htaccess偽靜態規則

.htaccess文件提供了針對目錄改變配置的方法, 是apache服務器中的一個配置文件,它負責相關目錄下的網頁配置。通過htaccess文件,可以幫我們實現:網頁301重定向、自定義404錯誤頁面、改變文件擴展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔等功能。

偽靜態實際上是利用PHP把當前地址解析成另外一種方法進行訪問網站!要學偽靜態規則的寫法,你必須得懂一點正則。

一、正則表達式教程

簡單羅列如下:

.???換行符以外的所有字符 w?匹配字母或數字或下劃線或漢字 s?匹配任意的空白符 d?匹配數字 b?匹配單詞的開始或結束 ^?匹配字符串的開始 $?匹配字符串的結束 *?重復零次或更多次 +?重復一次或更多次 ??重復零次或一次 {n}?重復n次 {n,}重復n次或更多次 {n,m}?重復n到m次

二、常見的.htaccess應用舉例

1 防止盜鏈,如果來得要訪問jpe jpg bmp png結尾的url 用戶不是來自我們的網站,那么讓他看一張我們網站的展示圖片。

RewriteEngine?On RewriteCond?%{HTTP_REFERER}?!^http://(.+.)?mysite.com/?[NC]RewriteCond?%{HTTP_REFERER}?!^$RewriteRule?.*.(jpe?g|gif|bmp|png)$?/images/nohotlink.jpg?[L]

2 網站升級的時候,只有特定IP才能訪問,其他的用戶將看到一個升級頁面

RewriteEngine?on RewriteCond?%{REQUEST_URI}?!/upgrade.html$RewriteCond?%{REMOTE_HOST}?!^24.121.202.30 RewriteRule?$?http://www.linuxidc.com/upgrade.html?[R=302,L]

3 把老的域名轉向新域名

#?redirect?from?old?domain?to?new?domain RewriteEngine?On RewriteRule?^(.*)$http://www.yourdomain.com/$1[R=301,L]

三、常用示例

比如:http://www.yzzmf.com/index.html? -> http://www.yzzmf.com/index.php

RewriteEngine?On RewriteRule?index.html?index.php

比如:http://www.yzzmf.com/test8.html? -> http://www.yzzmf.com/test.php?id=8

RewriteRule?^test([0-9]*).html$?test.php?id=$1

比如:http://www.yzzmf.com/cat-1-3.html -> http://www.yzzmf.com/cat.php?id1=1&id2=3

RewriteRule?^cat-([0-9]+)-([0-9]+).html$?cat.php?id1=$1&id2=$2

比如:http://www.yzzmf.com/cat-zbc2ac-3-5.html -> http://www.yzzmf.com/cat.php?id0=zbc2ac&id1=3&id2=5

RewriteRule?^cat-([a-zA-Z0-9-]*)-([0-9]+)-([0-9]+).html$?cat.php?id0=$1&id1=$2&id2=$3

比如:http://www.yzzmf.com/cat1-4-3-8.html -> http://www.yzzmf.com/cat1.php?id1=4&id2=3&id3=8

RewriteRule?^cat1-([0-9]+)-([0-9]+)-([0-9]+).html$?cat1.php?id1=$1&id2=$2&id3=$3

比如:http://www.yzzmf.com/cat5/ -> http://www.yzzmf.com/cat.php?id1=5

RewriteRule?^cat([0-9]*)/$?cat.php?id1=$1

比如:http://www.yzzmf.com/catm6/3/ -> http://www.yzzmf.com/catm.php?id1=6&id2=3

RewriteRule?^catm([0-9]*)/([0-9]*)/$?catm.php?id1=$1&id2=$2

希望對大家有所幫助!

推薦教程:apache教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享