nginx里使用偽靜態是直接在nginx.conf 中寫規則的,并不需要像apache要開啟寫模塊(mod_rewrite)才能進行偽靜態。
nginx只需要打開nginx.conf配置文件,在server里面寫需要的規則即可。
代碼如下:
server
{
listen 80;
server_name bbs.Vevb.com;
index index.html index.htm index.php;
root /home/www/bbs;
error_page 404 /404.htm; #配置404錯誤頁面
location ~ .*.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
#下面就是偽靜態了
location /{
rewrite ^(.*)/equip(d+).html$ $1/index.php?m=content&c=index&a=lists&catid=$2 last;
}
access_log access_log off;
}
然后重啟nginx服務器偽靜態就生效了,這種維護起來很是不方便我們可以把它寫在外部文件如bbs_nginx.conf中
在/home/www/bbs目錄下創建bbs_nginx.conf文件并寫入以下代碼:
代碼如下:
ocation /{
rewrite ^(.*)/equip(d+).html$ $1/index.php?m=content&c=index&a=lists&catid=$2 last;
}
然后在上面的代碼后面加上如下代碼:
代碼如下:
include /home/www/bbs/bbs_nginx.conf;
這樣網站根目錄中的bbs_nginx.conf偽靜態規則,即可實現單獨管理。
下面是一個實例:
1. 在使用.htaccess文件的目錄下新建一個.htaccess文件,如下面一個Discuz論壇目錄:
代碼如下:
vim /var/www/html/jb51/bbs/.htaccess
2. 在里面輸入規則,我這里輸入Discuz的偽靜態規則(這里僅增加Discuz的偽靜態規則):
代碼如下:
# nginx rewrite rule
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;
# end nginx rewrite rule
wq保存退出。
3. 修改nginx配置文件:
代碼如下:
vim /etc/nginx/nginx.conf
4. 在需要添加偽靜態的虛擬主機的server{}中引入.htaccess文件:
代碼如下:
include /var/www/html/jb51/bbs/.htaccess; (備注:把路徑改成你.htaccess文件的具體位置)
wq保存退出。
新聞熱點
疑難解答