wordpress mod_rewrite 重写URL
Module ngx_http_rewrite_module 官方介绍nginx语法
想把http://www.91hx.org/?p=123 替换成这样的形式 http://www.91hx.org/x188.html
查看Nginx配置文件 /www/wdlinux/nginx-1.8.1/conf/nginx.conf
这里加载了/www/wdlinux/nginx-1.8.1/conf/vhost/*.conf 所有的.conf文件

00000.default.conf 文件里添加一下代码 这里的思路就是/?p=123 换成x123.html
location / {
rewrite ^(.*)/x(\d+)\.html$ $1/?p=$2 last;
}
nginx 伪静态规则:
rewrite 关键字
^伪静态规则开始
last 伪静态结束
(.*) 任何字符 域名
nginx的rewrite规则参考:
- ~ 为区分大小写匹配
- ~* 为不区分大小写匹配
- !~和!~*分别为区分大小写不匹配及不区分大小写不匹
- -f和!-f用来判断是否存在文件
- -d和!-d用来判断是否存在目录
- -e和!-e用来判断是否存在文件或目录
- -x和!-x用来判断文件是否可执行
- last 相当于Apache里的[L]标记,表示完成rewrite,呵呵这应该是最常用的
- break 终止匹配, 不再匹配后面的规则
- redirect 返回302临时重定向 地址栏会显示跳转后的地址
- permanent 返回301永久重定向 地址栏会显示跳转后的地址
- $args
- $content_length
- $content_type
- $document_root
- $document_uri
- $host
- $http_user_agent
- $http_cookie
- $limit_rate
- $request_body_file
- $request_method
- $remote_addr
- $remote_port
- $remote_user
- $request_filename
- $request_uri
- $query_string
- $scheme
- $server_protocol
- $server_addr
- $server_name
- $server_port
- $uri
同理 分页伪静态 http://www.91hx.org/index.php?paged=2 想改成 http://www.91hx.org/p2.html
rewrite ^(.*)/p(\d+)\.html$ $1/index.php?paged=$2 last;
http://www.91hx.org/page/2
http://www.91hx.org/index.php?paged=2
wordpress伪静态如何支持中文(目前不支持分类目录中文)
wordpress后台设置:



nginx配置文件里添加伪静态规则文件 添加:include /www/web/default/.htaccess

测试配置文件 cd /www/wdlinux/nginx-1.8.1/conf/nginx.conf
./nginx -t

重载nginx配置文件
./nginx -s reload
先查看是那种web服务器

ECS Linux 基于 nginx 环境通过 .htaccess 配置 rewrite 伪静态示例
apache 伪静态规则 参考 保存.htaccess文件
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
nginx伪静态规则
#ignored: “-” thing used or unknown variable in regex/rew
rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
if (-f $request_filename){
set $rule_2 1;
}
if (-d $request_filename){
set $rule_2 1;
}
if ($rule_2 = "1"){
#ignored: “-” thing used or unknown variable in regex/rew
}
rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
rewrite /. /index.php last;
XFTP4下查看.htaccess文件
工具-选项

常规- 显示隐藏的文件 打钩

如果是apche 需要开启mod_rewrite
参考

浙公网安备 33010602011771号