joomla程序在lnmp/nginx中默认是没有配置文件的,不像dede,wordpress等开源程序都有现成的conf配置文件,直接在网站配置文件里include一下就可以了。

如果你的网站是IIS或者apache,可以参考:http://www.vuln.cn/?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 #重启一下即可

至此,完美,没毛病。