nginx偽靜態大全
#discuz 7.2 nginx偽靜態
rewrite ^/archiver/((fid|tid)-[\w\-]+\.html)$ /archiver/index.php?$1 last;
rewrite ^/forum-([0-9]+)-([0-9]+)\.html$ /forumdisplay.php?fid=$1&page=$2 last;
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&extra=page\%3d$3&page=$2 last;
rewrite ^/profile-(username|uid)-(.+)\.html$ /viewpro.php?$1=$2 last;
rewrite ^/space-(username|uid)-(.+)\.html$ /space.php?$1=$2 last;
rewrite ^/tag-(.+)\.html$ /tag.php?name=$1 last;break;
相信現在大部分用linux vps的朋友都在使用這個迅速傳播的nginx,今天就整理一下最常見的php程式的
rewrite(偽靜態規則)。
wordpress:
location /
if (-f $request_filename/index.php)
if (!-f $request_filename)
}phpcms:
location /
ecshop:
if (!-e $request_filename)
shopex:
location /
}sablog 2.0:(感謝追尋36[正冰]部落格提供)
# 只帶月份的歸檔
rewrite "^/date/([0-9])/?([0-9]+)?/?$" /index.php?action=article&setdate=$1&page=$2 last;
# 無分類翻頁
rewrite ^/page/([0-9]+)?/?$ /index.php?action=article&page=$1 last;
# 分類
rewrite ^/category/([0-9]+)/?([0-9]+)?/?$ /index.php?action=article&cid=$1&page=$2 last;
rewrite ^/category/([^/]+)/?([0-9]+)?/?$ /index.php?action=article&curl=$1&page=$2 last;
# 歸檔、高階搜尋
rewrite ^/(archives|search|article|links)/?$ /index.php?action=$1 last;
rewrite ^/(comments|tagslist|trackbacks|article)/?([0-9]+)?/?$ /index.php?action=$1&page=$2 last;
# tags
rewrite ^/tag/([^/]+)/?([0-9]+)?/?$ /index.php?action=article&item=$1&page=$2 last;
# 文章
rewrite ^/archives/([0-9]+)/?([0-9]+)?/?$ /index.php?action=show&id=$1&page=$2 last;
# rss rewrite ^/rss/([0-9]+)?/?$ /rss.php?cid=$1 last;
rewrite ^/rss/([^/]+)/?$ /rss.php?url=$1 last;
# 使用者 rewrite ^/uid/([0-9]+)/?([0-9]+)?/?$ /index.php?action=article&uid=$1&page=$2 last;
rewrite ^/user/([^/]+)/?([0-9]+)?/?$ /index.php?action=article&user=$1&page=$2 last;
# 地**件
rewrite sitemap.xml sitemap.php last;
# 自定義鏈結
rewrite ^(.*)/([0-9a-za-z\-\_]+)/?([0-9]+)?/?$ $1/index.php?action=show&alias=$2&page=$3 last;
discuz 7:
rewrite ^/archiver/((fid|tid)-[\w\-]+\.html)$ /archiver/index.php?$1 last;
rewrite ^/forum-([0-9]+)-([0-9]+)\.html$ /forumdisplay.php?fid=$1&page=$2 last;
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&extra=page\%3d$3&page=$2 last;
rewrite ^/space-(username|uid)-(.+)\.html$ /space.php?$1=$2 last;
rewrite ^/tag-(.+)\.html$ /tag.php?name=$1 last;
typecho:
location /
if (-f $request_filename/index.php)
if (!-f $request_filename)
}modoer:
location /
phpwind:
location /
為什麼要設定偽靜態?主要是出於seo的考慮,對於搜尋引擎來說,靜態化的鏈結無論如何是比帶引數的鏈結要友好,對訪客來說也便於記憶,感官上也更舒服一些。當然生成靜態頁面對seo更友好,訪問速度也更快,但對於論壇這種資料更新非常頻繁的應用,生成靜態是不划算的,不但可能會造成更高的資料庫負擔,也會給磁碟帶來無法承受的壓力,本來i/o就是瓶頸。這種情況下,偽靜態是最好的選擇。
但同樣是出於seo考慮,並不是偽靜態就是好的,像個人資料頁面、個人空間等是不適宜偽靜態的,因為這些頁面內容是大量重複的,而且並無與**相關的實際內容,最好禁止收錄,當然也就沒必要浪費資源區靜態化鏈結了。
nginx的規則相對apache來說確實要易懂一些,畢竟要nginx考慮的方面可能比apache少,會更靈活,偽靜態也是如此。**如下:
location /
apache偽靜態轉為nginx偽靜態
1.將原apache專案中的偽靜態檔案轉化為nginx的偽靜態 2.將轉化後的偽靜態覆蓋原來的偽靜態檔案內的內容 3.配置nginx伺服器的檔案 4.重新啟動nginx伺服器 詳解 1 找到專案中的偽靜態檔案 vim開啟檔案,將內容複製出來 下面這個是本人的檔案 2 下面這個是自動轉化的 3 將轉化...
nginx配置偽靜態
1.將原apache專案中的偽靜態檔案轉化為nginx的偽靜態 2.將轉化後的偽靜態覆蓋原來的偽靜態檔案內的內容 3.配置nginx伺服器的檔案 4.重新啟動nginx伺服器 詳解 1 找到專案中的偽靜態檔案 vim開啟檔案,將內容複製出來 下面這個是本人的檔案 2 下面這個是自動轉化的 3 將轉化...
nginx偽靜態規則配置
背景,這樣的url很難看吧,座程式猿怎麼會容忍這樣的事情發生的呢?這樣的還差不多。學會了這兩條規則配置,nginx的偽靜態規則配置基本就大專畢業了,哈哈哈哈 場景一 重寫成 場景二 把帶引數的1.2解析成3 1.2.3.伺服器配置檔案 server location php 偽靜態配置檔案可以直接寫...