nginx偽靜態大全

2021-06-16 16:11:40 字數 3200 閱讀 1919

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 偽靜態配置檔案可以直接寫...