Joomla是一套全球知名的内容管理系统,Joomla是使用PHP语言加上MySQL数据库所开发的软件系统。
最近小编在使用Joomla开发做一个官网时,要用到程序URL重写(rewriting) Nginx伪静态规则,去掉讨厌的index.php,在国外论坛找了好久终于找到一个可用的规则,现贴出来给需要的站长使用。
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; } 如果上面的规则不能用,可能是你虚拟主机的问题,可以使用下面的: 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; }
如果上面的joomle的nginx rewrite伪静态规则出现图片/附件不法上传用下面这个
location / {
try_files $uri $uri/ /index.php?q=$request_uri;
}
如果上面的joomle的nginx rewrite伪静态规则地址是中文用下面这个
if (!-e $request_filename) {
rewrite (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ /index.php last;
break;
}
来源:https://www.nuxiong.com/news_show_6367.html
如果本文对你有帮助,欢迎打赏本站