有時(shí)候,我們可能會在網(wǎng)站根目錄下面再創(chuàng)建一個(gè)二級目錄站,也就是子目錄的站點(diǎn),如果這們的話,我們就需要重新去給二級目錄站(子目錄)做偽靜態(tài)了。具體操作方法如下:
為了更好的示例,這里以 WordPress 程序搭建二級目錄站為測試。
一、LNMP:Nginx二級目錄偽靜態(tài)
1、只需要添加這個(gè)二級目錄的偽靜態(tài)就可以了,這里以LNMP環(huán)境的 nginx.conf 配置文件為例子;
只需要添加如下代碼:”fujieace”請?zhí)鎿Q成你自己的二級網(wǎng)站目錄就可以了。
location /fujieace/ {
index index.html index.php;
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 (.*) /fujieace/index.php;
}
}
2、重啟nginx;
注意:
LNMP的Nginx下面也有很多類似的偽靜態(tài)配置文件,我們也可以直接 include 有引入。
例如:wordpress.conf、wp2.conf、dedecms.conf、discuz.conf 、ecshop.conf……等等,如下圖:
二、寶塔面板:Nginx二級目錄偽靜態(tài)
注意:
如果你用的是寶塔面板,你用第一種上面的偽靜態(tài)規(guī)則,是會報(bào)類似如下這樣的錯(cuò)誤:
nginx: [emerg] unknown directive “ index” in
/www/server/panel/vhost/rewrite/www.xxx.com.conf:7
nginx: configuration file /www/server/nginx/conf/nginx.conf test failed
中文翻譯
nginx:[emerg]未知指令“index”在
/www/server/panel/vhost/rewrite/www.xxx.com.conf:7
nginx:配置文件/www/server/nginx/conf/nginx.conf測試失敗
如果你用的是寶塔面板,你的偽靜態(tài)只需要直接選擇“wp2“即可!
這里很多人或許會有疑問?寶塔偽靜態(tài)wordpress與wp2的區(qū)別是什么?答案是:wordpress 是標(biāo)準(zhǔn)的偽靜態(tài),wp2 是代表的把 WordPress 裝在子目錄的偽靜態(tài)。
rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
if (!-e $request_filename){
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /index.php last;
}
三、Nginx try_files實(shí)現(xiàn)二級目錄偽靜態(tài)
當(dāng)然,也可以用以下代碼實(shí)現(xiàn)偽靜態(tài)。至于 try_files 和 rewrite 哪個(gè)效率更高?目前不得而知,需要做進(jìn)一步的了解。
location /fujieace/ {
index index.php;
try_files $uri $uri/ /fujieace/index.php?$args;
}
或者
可以直接采用 LNMP 程序下的配置文件:wp2.conf;
location /cmp/ {
try_files $uri $uri/ /cmp/index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
總結(jié):
有一點(diǎn)大家需要注意,現(xiàn)在nginx配置分為 http 和 https兩個(gè)地方,有時(shí)候很多人把 配置偽靜態(tài)規(guī)則 放在的是 http server中的,結(jié)果 https server中卻忘記了配置,恰好他的網(wǎng)站又是以https為主的,這樣的話,會造成就算你重新加載了nginx配置后,偽靜態(tài)規(guī)則卻不會生效。
我的建議是:
只要你的網(wǎng)站支持HTTPS,建議大家每次配置偽靜態(tài)規(guī)則一定要去 http server 和? https server兩個(gè)地方都添加上偽靜態(tài)規(guī)則。
轉(zhuǎn)載請注明:?蝸牛建站? ? Nginx二級目錄站(子目錄)偽靜態(tài)設(shè)置方法