社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

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

晴难自控 • 6 年前 • 510 次点击  
图片发自简书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 uriuri/ /index.php?args; //默认情况下可能是 try_filesuri $uri 404;这也是默认情况下找不到网页的原因
重启nginx服务 nginx -s reload
找到wordpress设置中永久链接部分,选择自己喜欢的链接形式(对搜索引擎友好的形式)


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/aqLRDoyxeE
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/25452
 
510 次点击