joomla程序在lnmp/nginx中默認是沒有配置文件的,不像dede,wordpress等開源程序都有現成的conf配置文件,直接在網站配置文件里include一下就可以了。

如果你的網站是IIS或者apache,可以參考:http://www.pojnfb.tw/?s=%E4%BC%AA%E9%9D%99%E6%80%81

網上關于joomla偽靜態的配置有幾個,但是都是千篇一律,且是不能用的。

比如:

joomla偽靜態

 

核心偽靜態實際上就這一句:

  location / {
                try_files $uri $uri/ /index.php$args;
        }

實測用不了。

建議大家還是不要圖省事直接在網站配置文件里加一兩句就行了,還是要在/usr/local/nginx/conf下建一個conf偽靜態配置文件,如:joomla.conf,內容如下:

 

if ( $args ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3d)" ) {
 set $args "";
 rewrite ^.*$ http://$host/index.php last;
 return 403;}
 
 if ( $args ~ "base64_encode.*\(.*\)") {
 set $args "";
 rewrite ^.*$ http://$host/index.php last;
 return 403;}
 
 if ( $args ~ "(\|%3E)") {
 set $args "";
 rewrite ^.*$ http://$host/index.php last;
 return 403;}
 
 if ( $args ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") {
 set $args "";
 rewrite ^.*$ http://$host/index.php last;
 return 403;}
 
 if ( $args ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") {
 set $args "";
 rewrite ^.*$ http://$host/index.php last;
 return 403;}
 
 if (!-e $request_filename) {
 
 rewrite (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ /index.php last;
 break;
 }

然后在網站的配置文件中引用一下:

include joomla.conf

joomla偽靜態

 

然后到/usr/local/nginx/sbin下

./nginx -s reload #重啟一下即可

至此,完美,沒毛病。

您的支持將鼓勵我們繼續創作!

[微信] 掃描二維碼打賞

[支付寶] 掃描二維碼打賞