Nginx下配置wordpress友好形式的固定链接

Nginx下配置wordpress友好形式的固定链接

图片发自简书App

WordPress默认的固定连结形式是“丑陋的”,类似http://www.weizhiyong.com?p=N,当然,这里的“丑陋”并非针对人类用户(有人在审美上就喜欢这样的形式也未可知),而是针对搜索引擎而言的,这样的链接结构和形式,对于进行SEO(搜索引擎优化)时非常不便。这是因为,wordpress采用了动态的网站形式(和当前主流的网站架构形式一样),这对于人类用户来说并没有什么问题,无论网页是静态存储还是动态生成的,呈现给我们的形式都一样,而我们访问时也一般通知直接点击超链接完成,而并不关心链接地址究竟是怎样的结构。但对于计算机来说就不同了,网站进行搜索引擎优化时,才有前述的形式对网络爬虫是十分不友好的,它只是保证wordpress站点可以正常访问而已。

在Wordpress中也提供了几种优化的永久链接(permilink)结构形式供选择,但是,这样的修改都需要对网站引擎进行一些操作,使网站引擎可以满足url链接地址重写的要求,从而保证用户和搜索引擎可以访问到指定网页,否则,在修改了wordpress的链接结构之后,所有的超链接都会变得无法访问。

在最常见的LAMP环境下,使用Apache作为网站引擎时,只要开启url_rewrite即可:

开启apache的url_rewrite模块,也就是在httpd.conf中去掉这句话的注释LoadModule rewrite_module modules/mod_rewrite.so
找到AllowOverride,把AllowOverride None修改成AllowOverride all
在所需要进行rewrite的web的主目录下添加.htaccess文件,添加上一句话:RewriteEngine on
新建.htaccess 文件并上传到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>
但是,随着LNMP环境的流行,越来越多网站采用更紧凑,对动态站点支持更好的Nginx作为网站引擎,在这种条件下,修改的步骤与Apache环境下不同。参考wordpress官网的文档,可通过以下步骤进行。

打开nginx配置文件,一般为/etc/nginx/nginx.conf 或者/etc/nginx/sites-enabled/default或者其他配置文件。
找到要重写路径的站点,location后面加上
try_files Nginx下配置wordpress友好形式的固定链接uri/ /index.php?Nginx下配置wordpress友好形式的固定链接uri $uri 404;这也是默认情况下找不到网页的原因
重启nginx服务 nginx -s reload
找到wordpress设置中永久链接部分,选择自己喜欢的链接形式(对搜索引擎友好的形式)

点赞