WordPress在nginx下的URL重写规则详解
下文中整理了在nginx中配置wordpress博客的URL重写规则了,包括了整站配置与固定链接配置了,下面我们就一起来看看吧.
配置代码 ,代码如下:
server { listen 80; server_name HdhCmsTestphpfensi测试数据 phpfensi测试数据; access_log /data/logs/nginx/HdhCmsTestphpfensi测试数据.access.log main; index index .html index .php; root /data/site/HdhCmsTestphpfensi测试数据; location / { try_files $uri $uri/ / index .php?$args; add_header Pragma "public" ; expires 12h; } rewrite /wp-admin$ $scheme://$host$uri/ permanent; location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { access_log off ; log_not_found off ; expires max ; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include fastcgi_params; fastcgi_index index .php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # fastcgi_intercept_errors on ; fastcgi_pass 127.0.0.1:9000; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 24h; access_log off ; } location ~ .*\.(js|css)$ { expires 24h; access_log off ; }重启你的nginx即可,固定链接(URL重写)在nginx的规则,只是用于WordPress单站点,一般默认安装的,不是多站点,将以下代码插入location的root中,代码如下:
if (!-f $request_filename ){ set $rule_1 1 $rule_1 ; } if (!-d $request_filename ){ set $rule_1 2 $rule_1 ; } //phpfensi测试数据 if ( $rule_1 = "21" ){ rewrite /. /index.php last; }我的WordPress在nginx配置情况,代码如下:
location / { root html/xiedexu.cn; index index .php index .html index .htm; if (!-f $request_filename){ set $rule_1 1$rule_1; } if (!-d $request_filename){ set $rule_1 2$rule_1; } if ($rule_1 = "21" ){ rewrite /. / index .php last ; } add_header Cache-Control private; }现在在新版本的已有不妥,会有两个规则警告提示,博友@五月里徜徉的小猫咪 说是nginx的if陷阱,分享了一个新的配置方案,方案比较全,不过如果你的conf不是那样配置的,只需要在location中插入:
try_files $uri $uri/ /index.php?$args;
发下自用的WordPress Nginx重定向规则,适合非子目录安装,代码如下:
location / { try_files $uri $uri/ / index .php?$args; } rewrite /wp-admin$ $scheme://$host$uri/ permanent;AMH自带的为,代码如下:
location / { 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 (.*) / index .php; } }简单使用方法: AMH使用AMRewrite插件新建一条Rewrite规则,校验规则,然后编辑虚拟主机,选择新建的规则.
直接改nginx.conf了解的自然了解,不熟悉的随便就瘫了.
查看更多关于WordPress在nginx下的URL重写规则详解 - WordPress的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did8957