国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Nginx > 正文

Nginx服務器下使用rewrite重寫url以實現偽靜態的示例

2024-08-30 12:26:29
字體:
來源:轉載
供稿:網友

經過網上查閱和測試,發現Nginx的Rewrite規則和Apache的Rewite規則差別不是很大,幾乎可以直接使用。比如在Apache中這樣寫規則

rewrite ^/([0-9]{5}).html$ /viewthread.php?tid=$1 last;

而在Nginx中寫成這樣寫是無法啟動的,解決的辦法是加上兩個雙引號:

rewrite "^/([0-9]{5}).html$" /viewthread.php?tid=$1 last;

同時將RewriteRule為Rewrite,基本就實現了Nginx的Rewrite規則到Apache的Rewite規則的轉換。

Rewrite的Flags

last - 基本上都用這個Flag。 break - 中止Rewirte,不在繼續匹配 redirect - 返回臨時重定向的HTTP狀態302 permanent - 返回永久重定向的HTTP狀態301

WordPress的Rewrite
其實在Nginx下配置WordPress的Rewrite還是比較簡單的,在location /{..................}里面加入

if (!-f $request_filename){rewrite (.*) /index.php;}

即可實現。

下面是一個完整的vhost的配置文件

server {listen 80;server_name ccvita.com www.ccvita.com;location / {    index index.html index.htm index.php;    root /www/wwwroot/ccvita.com;    if (-f $request_filename/index.html){        rewrite (.*) $1/index.html break;    }    if (-f $request_filename/index.php){        rewrite (.*) $1/index.php;    }    if (!-f $request_filename){        rewrite (.*) /index.php;    }}location ~ /.php$ {    include fastcgi_params;    fastcgi_index index.php;    fastcgi_pass 127.0.0.1:8787;    fastcgi_param SCRIPT_FILENAME /www/wwwroot/ccvita.com$fastcgi_script_name;    }location /ccvita-status {    stub_status on;    access_log off;    }}

Discuz!的Rewrite
下面的Rewrite中百分號前面多了個轉移字符“/”,這在Apache中是需要的,而在Nginx中則是不需要的。

rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)/.html$ /viewthread.php?tid=$1&extra=page/%3D$3&page=$2 last;

正確的應該是

rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)/.html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;

這個錯誤在基本上目前所有使用Nginx作為服務器,并且開啟了Rewrite的網站上存在。包括Discuz!官方,目前已經給cnteacher反饋了。
Nginx實例代碼

server {  listen    80;  server_name www.ccvita.com ccvita.com;  location / {     index      index.html index.htm index.php;     root      /www/www.ccvita.com;     rewrite ^(.*)/archiver/((fid|tid)-[/w/-]+/.html)$ $1/archiver/index.php?$2 last;     rewrite ^(.*)/forum-([0-9]+)-([0-9]+)/.html$ $1/forumdisplay.php?fid=$2&page=$3 last;     rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)/.html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;     rewrite ^(.*)/profile-(username|uid)-(.+)/.html$ $1/viewpro.php?$2=$3 last;     rewrite ^(.*)/space-(username|uid)-(.+)/.html$ $1/space.php?$2=$3 last;     rewrite ^(.*)/tag-(.+)/.html$ $1/tag.php?name=$2 last;  }    location ~ /.php$ {        include fastcgi_params;        fastcgi_index index.php;        fastcgi_pass 127.0.0.1:8694;        fastcgi_param SCRIPT_FILENAME /www/www.ccvita.com$fastcgi_script_name;    }  location /www.ccvita.com-status {     stub_status on;     access_log off;  }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河东区| 六枝特区| 万源市| 南通市| 盱眙县| 惠安县| 宁都县| 军事| 凤山县| 高要市| 敖汉旗| 凤城市| 榆林市| 武清区| 大埔县| 丰顺县| 满洲里市| 桐梓县| 山阳县| 泽库县| 大埔区| 贺州市| 普宁市| 兴和县| 天全县| 巴彦淖尔市| 海宁市| 镇赉县| 灵寿县| 天长市| 巧家县| 元氏县| 古交市| 城口县| 怀仁县| 涪陵区| 枝江市| 东宁县| 金塔县| 平南县| 罗城|