正則表達式匹配,其中:php
分下一下Discuz! X1.5及2.0 在 nginx web server下的重寫規則:css
rewrite ^([^.]*)/topic-(.+).html$ $1/portal.php?mod=topic&topic=$2 last; rewrite ^([^.]*)/article-([0-9]+)-([0-9]+).html$ $1/portal.php?mod=view&aid=$2&page=$3 last; rewrite ^([^.]*)/forum-(w+)-([0-9]+).html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last; rewrite ^([^.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last; rewrite ^([^.]*)/group-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=group&fid=$2&page=$3 last; rewrite ^([^.]*)/space-(username|uid)-(.+).html$ $1/home.php?mod=space&$2=$3 last; rewrite ^([^.]*)/([a-z]+)-(.+).html$ $1/$2.php?rewrite=$3 last; if (!-e $request_filename) { return 404; }
文件及目錄匹配,其中:html
flag標記有:nginx
結合QeePHP的例子正則表達式
多目錄轉成參數
abc.domian.com/sort/2 => abc.domian.com/index.php?act=sort&name=abc&id=2sql
目錄對換
/123456/xxxx -> /xxxx?id=123456瀏覽器
例以下面設定nginx在用戶使用ie的使用重定向到/nginx-ie目錄下:緩存
目錄自動加「/」cookie
禁止htaccess
禁止多個目錄
禁止以/data開頭的文件
能夠禁止/data/下多級目錄下.log.txt等請求;
禁止單個目錄
不能禁止.log.txt能請求
禁止單個文件
給favicon.ico和robots.txt設置過時時間;
這裏爲favicon.ico爲99天,robots.txt爲7天並不記錄404錯誤日誌
設定某個文件的過時時間;這裏爲600秒,並不記錄訪問日誌
文件反盜鏈並設置過時時間
這裏的return 412 爲自定義的http狀態碼,默認爲403,方便找出正確的盜鏈的請求
「rewrite ^/ http://leech.c1gstudio.com/leech.gif;」顯示一張防盜鏈圖片
「access_log off;」不記錄訪問日誌,減輕壓力
「expires 3d」全部文件3天的瀏覽器緩存
只充許固定ip訪問網站,並加上密碼
將多級目錄下的文件轉成一個文件,加強seo效果
/job-123-456-789.html 指向/job/123/456/789.html
將根目錄下某個文件夾指向2級目錄
如/shanghaijob/ 指向 /area/shanghai/
若是你將last改爲permanent,那麼瀏覽器地址欄顯是/location/shanghai/
上面例子有個問題是訪問/shanghai 時將不會匹配
這樣/shanghai 也能夠訪問了,但頁面中的相對連接沒法使用,
如./list_1.html真實地址是/area/shanghia/list_1.html會變成/list_1.html,導至沒法訪問。
那我加上自動跳轉也是不行咯
(-d $request_filename)它有個條件是必需爲真實目錄,而個人rewrite不是的,因此沒有效果
知道緣由後就好辦了,讓我手動跳轉吧
文件和目錄不存在的時候重定向:
域名跳轉
多域名轉向
三級域名跳轉
域名鏡向
某個子目錄做鏡向
discuz ucenter home (uchome) rewrite
discuz 7 rewrite
給discuz某版塊單獨配置域名
discuz ucenter 頭像 rewrite 優化
jspace rewrite