Nginx下修改WordPress固定链接导致无法访问的问题解决

 更新时间:2015年07月03日 10:50:57   投稿:goldensun  
这篇文章主要介绍了Nginx下修改WordPress固定链接导致无法访问的问题解决,同时作者也给出了官方关于修改固定链接的方法,需要的朋友可以参考下

今天下午没事,像以往一样开始做seo的优化,当然牵扯到永久链接,wordpress提供多种类型的链接形式

    1/%year%/%monthnum%/%day%/%postname%/

    2/%year%/%monthnum%/%postname%/

    3/%year%/%monthnum%/%day%/%postname%.html

    4/%year%/%monthnum%/%postname%.html

    5/%category%/%postname%.html

    6/%post_id%.html

    7/%postname%/

我选择了/%postname%.html,伪静态,虽然现在貌似没什么差别了,但还是该下吧。下面就出现了修改固定链接后,访问文章会出现404错误,以前我都是apache做web服务器,所以只要apache下就三个个关键,即

    wordpress对目录下的.htaccess拥有读写权限
    固定链接的目录结构需要 Apache服务器的mod_rewrite模块支持,所以在Apache配置文件httpd.conf中将 LoadModule rewrite_module modules/mod_rewrite.so设置为启用。
    同样是Apache配置文件,其中对于站点目录下的AllowOverride None的参数设置为All。当然修改完配置后,一定要重启Apache服务。
    由于是新配置的本地测试环境,2、3两项问题同时出现,逐项更正设置后,固定链接的工作正常。

现在我用的nginix,所以也要修改nginix的ngnix.conf配置文件,让其支持重定向

假设我的wordpress博客是的 server{}段是直接放到放到了nginx.conf  (有的人为了方便管理,都习惯在单独写个vhost/目录来存放每个网站的配置文件,这就要根据你自己的设置来添加了)

   

复制代码 代码如下:
vi /your_nginx_path/conf/nginx.conf

    按照nginix的正则表达式的规则,可参考:Nginx 的中文维基

  •         ^:匹配输入字符的开始位置
  •         $:匹配数日字符串的结束位置
  •         +:匹配前面的子表达式一次或者多次
  •         [0-9]:数字字符范围
  •         $1:调用变量

    在server{}  字段   中的  “root /websit/wwwroot/;”(这行就是指定网站所在目录的)  这一行的下面 ,添加下面的内容:

复制代码 代码如下:
            

    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;
    }

    rewrite /wp-admin$ $scheme://$host$uri/ permanent;//这行是为了防止打开后台、插件页等打不开的。

    保存后,输入    /etc/init.d/nginx restart , 重启nginix。就ok了!

相当于告诉nginix访问这些后按照正则表达式转到其唯一正确的地址,以此打开文章。

貌似/%postname%/会以中文为链接,为了seo,可以考虑一个插件 WP Slug Translate,它会自动换中文标题为英文,不能联网就改为拼音。

貌似官方给出了新的pha100 pha-3,也简单的多。这里假设,我在nginx的conf文件夹下创建个wordpress.conf ,将下面的代码粘贴进去:

复制代码 代码如下:
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

我的博客nginx虚拟机配置文件在  conf/vhost/www.dabu.info.conf  。同样,在root 那行下面,添加一行:

复制代码 代码如下:
include wordpress.conf;

接着重启nginx就可以正常访问了

相关文章

  • 浅析nginx刚刚发布的JavaScript能力nginScript

    浅析nginx刚刚发布的JavaScript能力nginScript

    Nginx [engine x]是全球最受欢迎,也是最优秀的web服务器、反向代理服务器。nginScript是JavaScript/ECMAscript的子集,nginScript不是通过V8引擎实现的。本文给大家介绍nginx刚刚发布的JavaScript能力nginScript,感兴趣的朋友跟着小编一起了解了解吧
    2015-09-09
  • 在Nginx中使用X-Sendfile头提升PHP文件下载的性能(针对大文件下载)

    在Nginx中使用X-Sendfile头提升PHP文件下载的性能(针对大文件下

    这篇文章主要介绍了在Nginx中使用X-Sendfile头提升PHP文件下载的性能,可以用在针对大文件下载的情况,下载非网站Web目录文件的需求,提供下载权限控制的场景,需要的朋友可以参考下
    2014-07-07
  • Nginx配置多端口多域名访问的实现

    Nginx配置多端口多域名访问的实现

    这篇文章主要介绍了Nginx配置多端口多域名访问的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • nginx 基本入门教程

    nginx 基本入门教程

    本篇文章主要介绍了详解nginx 基本入门,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 详解Nginx如何配置Web服务器的示例代码

    详解Nginx如何配置Web服务器的示例代码

    这篇文章主要介绍了详解 Nginx如何配置Web服务器的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 详解Nginx 工作原理

    详解Nginx 工作原理

    这篇文章主要介绍了Nginx 工作原理,帮助大家更好的理解和学习nginx,感兴趣的朋友可以了解下
    2020-10-10
  • Nginx跨域设置Access-Control-Allow-Origin无效的解决办法

    Nginx跨域设置Access-Control-Allow-Origin无效的解决办法

    今天小编就为大家分享一篇关于Nginx跨域设置Access-Control-Allow-Origin无效的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 详解Nginx 静态文件服务配置及优化

    详解Nginx 静态文件服务配置及优化

    这篇文章主要介绍了Nginx 静态文件服务配置及优化,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Nginx隐藏和伪造版本号的操作方法

    Nginx隐藏和伪造版本号的操作方法

    这篇文章主要介绍了Nginx隐藏和伪造版本号的操作方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • 简介使用Nginx Plus的在线活动监控功能的方法

    简介使用Nginx Plus的在线活动监控功能的方法

    这篇文章主要介绍了简介使用Nginx Plus的在线活动监控功能的方法,注意其目前暂时为收费项目,需要的朋友可以参考下
    2015-06-06

最新评论