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

今天下午没事,像以往一样开始做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就可以正常访问了

时间: 2024-09-29 08:28:13

Nginx下修改WordPress固定链接导致无法访问的问题解决_nginx的相关文章

Nginx下让WordPress支持固定链接的伪静态规则_nginx

Nginx下让WordPress支持固定链接的伪静态规则 要让nginx支持wordpress固定链接非常简单,需要自己进行添加点配置代码: 复制代码 代码如下: location / {if (-f $request_filename/index.html){                rewrite (.*) $1/index.html break;        }if (-f $request_filename/index.php){                rewrite (

去除WordPress固定链接中的category路径方法总结

从SEO的角度来说,网站链接越简洁越好,链接的路径越少越好.wordpress默认情况下设置固定链接,分类页面是有category路径的. 解决方法网上也有提供,有使用插件,有使用伪静态的.下面小峰来说一下,能处理的几种方法. 注:以下部分代码来源于网上. 方法一: 在functions.php文件中添加如下代码,然后到wp后台-设置-固定链接-保存一次即可生效. /**  * 去除固定链接中的/category/路径,记得在后台保存一次固定链接  */ add_action('init', '

nginx下的wordpress如何伪静态

  以前用的虚拟主机一直是apache,现在换到vps用的是nginx,原来的wordpress伪静态全部失效,怎么办? 如何在nginx下设置让原来的设置依然有效呢? 经过测试发现 其实在Nginx下配置WordPress的Rewrite还是比较简单的,在location /{------}里面加入 if (!-e $request_filename){ rewrite (.*) /index.php; } 即可实现. 各位朋友试试吧

WordPress固定链接修改成日期 作者的形式

例如/post/author/frustigor,/post/date/2014/04,这就很奇怪了,非常不好看,也没有必要.我们想要的结果三/author/name和/date/year/month的形式.怎么来修理呢?这篇文章告诉你答案. 1.你必须了解的事 ↑ 我们需要先了解这些事实:1.你必须通过编写wordpress相关的php程序才能解决这个问题:2.你必须懂,这个问题关系着两个东西,一个是链接,例如"2014年3月"这个边侧栏里面的链接必须修改为链接到不带post的URL

删除wordpress固定链接后URL中的category的方法

插件方案删除category的方法 wordpress设置伪静态(即后台--设置--固定链接,非默认)后,分类目录的URL结构会变成http://域名/category/目录别名,显然其中的category/很碍眼.前面介绍过两款插件 No category parents 和 wp-no-category-base 用于去掉伪静态后分类目录URL的category/部分,现在再介绍一款删除分类目录URL中category/的插件FV Top Level Categories. 插件介绍: 设置

wordpress固定链接设置的一些心得

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 捣鼓博客,先前纠结模板的选用,模板选好了又纠结固定链接.我总是不消停.首先看下wordpress的固定链接设定. 此功能允许自定义链接形式,以提高美感.可用性和向前兼容性.(需要主机支持伪静态) 我们设置固定链接无非是让博客链接更加的美观,以及对SEO优化会有所帮助. 先来看看网上一些常用的链接格式: 1/%year%/%monthnum%/

去除WordPress固定链接中category路径方法

解决方法网上也有提供,有使用插件,有使用伪静态的.下面小峰来说一下,能处理的几种方法. 注:以下部分代码来源于网上. 方法一: 在functions.php文件中添加如下代码,然后到wp后台-设置-固定链接-保存一次即可生效.  /**  * 去除固定链接中的/category/路径,记得在后台保存一次固定链接  */ add_action('init', 'inlo_no_category'); function inlo_no_category() {  global $wp_rewrite

配置解决Nginx服务器中WordPress路径不自动加斜杠问题_nginx

问题是这样的:我习惯在博客地址后面直接加"wp-admin"敲回车进入WordPress后台,但是进去以后发现不管我点任何一个管理子项,一律404(找不到页面),瞬间我就囧了,这是神马状况... 仔细看了一下管理子项的链接,发现他们全是类似"//www.jb51.net/blog/edit.php"这样的,关键就在于他们都少了"/wp-admin/"这条路径,路径都不对了,肯定404呗... 知道问题在哪就简单了,而且答案肯定还是在Nginx的重

Nginx下配置pathinfo及ThinkPHP的URL Rewrite模式支持_nginx

打开Nginx的配置文件 /usr/local/nginx/conf/nginx.conf 一般是在这个路径,根据你的安装路径可能有所变化.如果你配置了vhost,而且只需要你这一个vhost支持pathinfo的话,可以直接打开你的vhost的配置文件.找到类似如下代码(不同版本的nginx可能稍有不同,但是相差不会很远): 复制代码 代码如下:     location ~ .*.(php|php5)?$         {                 #原有代码         } 修