最近接触WP Super Cache,该插件要求固定链接必须是重写的,故用到Rewrite。

我的是这样配置的:

/usr/local/nginx/conf/rewrite/wordpress.conf

  1. location / {
  2. if (-f $request_filename/index.html){
  3. rewrite (.*) $1/index.html break;
  4. }
  5. if (-f $request_filename/index.php){
  6. rewrite (.*) $1/index.php;
  7. }
  8. if (!-f $request_filename){
  9. rewrite (.*) /index.php;
  10. }
  11. }

然后在虚拟主机文件里添加

  1. include /usr/local/nginx/conf/rewrite/wordpress.conf;

即可。

完整的vhost的配置文件:

  1. server {
  2. listen 80;
  3. server_name me.52fhy.com;
  4. index index.php index.html index.htm;
  5. root /52fhy.com/wordpress/;
  6. location / {
  7. if (-f $request_filename/index.html){
  8. rewrite (.*) $1/index.html break;
  9. }
  10. if (-f $request_filename/index.php){
  11. rewrite (.*) $1/index.php;
  12. }
  13. if (!-f $request_filename){
  14. rewrite (.*) /index.php;
  15. }
  16. }
  17. location ~ .*\.(php|php5)?$
  18. {
  19. #fastcgi_pass unix:/tmp/php-cgi.sock;
  20. fastcgi_pass 127.0.0.1:9000;
  21. fastcgi_index index.php;
  22. include fastcgi.conf;
  23. }
  24. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  25. {
  26. expires 30d;
  27. }
  28. location ~ .*\.(js|css)?$
  29. {
  30. expires 1h;
  31. }
  32. access_log /www/log/me.52fhy.com.log;
  33. }
  • 2015-12-18 11:42:24更新:

    以上rewrite方法导致后台很多菜单无法访问,现更新。原因是:
  1. location / {
  2. #1
  3. if (-f $request_filename/index.html){
  4. rewrite (.*) $1/index.html break;
  5. }
  6. #2
  7. if (-f $request_filename/index.php){
  8. rewrite (.*) $1/index.php;
  9. }
  10. #3
  11. if (!-f $request_filename){
  12. rewrite (.*) /index.php;
  13. }
  14. }

对于后台http://me.52fhy.com/wp-admin/options-writing.php这种链接将直接匹配#3,实际上这时候不需要任何匹配。故可在#2前添加

  1. if (-f $request_filename){
  2. break;
  3. }

或者全部更新更新为:

  1. location / {
  2. index index.html index.php;
  3. if (-f $request_filename) {
  4. break;
  5. }
  6. if (!-e $request_filename) {
  7. rewrite . /index.php last;
  8. }
  9. }

另外,在Apache下,利用mod_rewrite来实现URL的静态化。

.htaccess的内容如下:

  1. # BEGIN WordPress
  2. RewriteEngine On
  3. RewriteBase /
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteCond %{REQUEST_FILENAME} !-d
  6. RewriteRule . /index.php [L]
  7. # END WordPress

参考:

1、Nginx下WordPress的Rewrite - 平凡的世界

http://www.ccvita.com/336.html

2、wordpress后台访问时没有wp-admin报404错误 | 技术部

http://www.jishubu.net/yunwei/linuxyunwei/420.html

Nginx下WordPress的Rewrite的更多相关文章

  1. nginx下laravel框架rewrite的设置

    nginx下laravel框架rewrite的设置 百牛信息技术bainiu.ltd整理发布于博客园 在nginx的vhost站点配置文件中加入以下内容即可 1 2 3 4 5 6 7 8 9 10 ...

  2. Nginx下wordpress伪静态规则(rewrite)

    当我们从apache服务器转向Nginx服务器的时候,它们的伪静态规则就不一样了,所以你熟悉Nginx服务器的伪静态规则,自己写当然也好.但很多网友还是不太了解Nginx服务器的伪静态规则的,而如果你 ...

  3. 解决Nginx下WordPress后台404的问题

    在把这个博客做好后,上传到nginx服务器上却出现问题. 首先是wordpress官方的伪静态是通过.htaccess实现的,但nginx并不支持.htaccess,无奈只好在网上找到wordpres ...

  4. nginx下wordpress 固定链接问题

    情况是这样的, 我的wordpress并不是放在网站的根目录的,而是放在/blog目录下的,然后在wordpress中设置固定链接的时候,每次都出错,用了网上几个方法都不行,后来在http://cod ...

  5. Yii在nginx下多目录rewrite

    开发过程中,在root下有多个程序,采用一个域名,以目录的形式访问,可以采用如下的方法进行url重写: rewrite ^(\/[^\/]+)(.*) $1/index.php$2 last; 意为取 ...

  6. [转]nginx下的url rewrite

    转:http://zhengdl126.iteye.com/blog/698206 if (!-e $request_filename){rewrite "^/index\.html&quo ...

  7. nginx下配置Yii2 rewrite、pathinfo等

    环境说明: 我试用的lnmp安装包安装的nginx,nginx版本是1.14.1 server { listen ; server_name www.baidu.com; #access_log /d ...

  8. nginx下配置laravel+rewrite重写

    server { listen ; server_name ha.d51v.cn; #access_log /data/wwwlogs/access_nginx.log combined; root ...

  9. nginx的location和rewrite

    1 Nginx rewrite基本语法 Nginx的rewrite语法其实很简单.用到的指令无非是这几个 set if return break rewrite 麻雀虽小,可御可萝五脏俱全.只是简单的 ...

随机推荐

  1. SharePoint 2013开发入门探索(一)- 自定义列表

    在SharePoint 2013中创建自定义列表的方式有很多,在网站内容页面添加应用程序就可以创建(站点内容-〉 您的应用程序),也可以通过SharePoint Designer 2013创建,而本文 ...

  2. ROS BY EXAMPLE 1 -- 环境设置与安装

    rbx1 package 的环境设置: sudo apt-get install ros-indigo-turtlebot-bringup \ ros-indigo-turtlebot-create- ...

  3. JS-数组的方法

    var arr = [ 1,2,3 ];arr.push( 'abc' );//从后面加 arr.unshift( 0 );//从前面加 arr.pop()//从后面删除 arr.shift()//从 ...

  4. innodb的存储结构

    如下所示,innodb的存储结构包含:表空间,段,区,页(块),行 innodb存储结构优化的标准是:一个页里面存放的行数越多,其性能越高 表空间:零散页+段 独立表空间存放的是:数据.索引.插入缓冲 ...

  5. NFS 网络文件系统挂载在A8板子上

    我承认自己是菜鸟,没什么网络知识就来搞挂载nfs网络文件系统,花费了5天的时间才把nfs网络文件系统成功挂载在A8板子上,实现了A8板子和虚拟机的文件共享.分享一下个人经验: 以下是基于nfs已经完成 ...

  6. API测试-Super Test

    框架选择 Super Test:基本的HTTP请求,返回判断 Chai:对返回的结果进行判断 grunt:集成jenkins grunt-mocha-test:grunt任务 Jenkins环境配制 ...

  7. CSS盒模型

    CSS盒模型是CSS 可视化格式化系统的基石,它是理解样式表如何工作的核心概念.盒模型用于元素定位和页面布局.元素框的最内部分是实际的内容,直接包围内容的是内边距.内边距呈现了元素的背景.内边距的边缘 ...

  8. mysql 服务windows安装

    找到mysql的bin目录,下面有一个mysqld.exe程序,这是用来启动mysql服务的,直接运行即可启动. 还有安装windows服务方式: mysqld.exe -install -manua ...

  9. Backpropagation反向传播算法(BP算法)

    1.Summary: Apply the chain rule to compute the gradient of the loss function with respect to the inp ...

  10. Replication的犄角旮旯(六)-- 一个DDL引发的血案(上)(如何近似估算DDL操作进度)

    <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...