国产探花免费观看_亚洲丰满少妇自慰呻吟_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;  }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 思南县| 新蔡县| 炎陵县| 安塞县| 呼伦贝尔市| 柘荣县| 安达市| 酒泉市| 新沂市| 甘泉县| 南溪县| 登封市| 石棉县| 六安市| 宝丰县| 胶南市| 湖口县| 敦化市| 平武县| 双桥区| 泗洪县| 泽普县| 淮阳县| 文登市| 汾西县| 米脂县| 新巴尔虎左旗| 恩施市| 宜良县| 隆化县| 达州市| 无棣县| 宜兴市| 永济市| 五寨县| 石阡县| 台东市| 老河口市| 乳源| 铁岭县| 洪洞县|