今天意外发现了一位网友的来信,咨询我博客RSS订阅地址的问题,这封邮件莫名其妙地被QQ邮箱归类到了垃圾邮件,所以才看到。
但是只要是用支持Apache或者Ngnix这种支持伪静态的web service架设的,就能实现上面那种伪静态。
首先需要在设置-固定链接页面选择一个固定链接进行设置:
这时候正常情况下WordPress会在其网站根目录下创建一个用于伪静态的路径重写规则文件.htaccess
,并写入数据,但如果你的网站目录权限设置的比较严格,可能就无法创建该文件,这时候就要手动创建并赋予一个权限:
#进入网站根目录
touch .htaccess
chmod -v 666 .htaccess
然后再重新在WordPress后台执行刚才的固定链接设置和保存操作。
如果一切正常的话此时就会正常写入重写规则:
cat .htaccess
应该是类似于这样的内容:
# BEGIN WordPress
# 在“BEGIN WordPress”与“END WordPress”之间的指令(行)是
# 动态生成的,只应被WordPress过滤器修改。
# 任何对标记之间的指令的修改都会被覆盖。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
此外还需要保证Apache和Ngnix打开了重写模块,Apache2.4是默认开启的。
还需要在虚拟主机设置里加入AllowOverride All
以允许目录下设置重写规则:
<Directory "/var/www/blog2">
# Options Indexes FollowSymLinks
# AllowOverride None
AllowOverride All
Require all granted
</Directory>
然后重启apache:
systemctl restart httpd
一切OK的话就能正常访问博客了,所有链接都会变成固定链接xxx/xxx的样式,当然RSS地址也会变成xxx/feed。最妙的是你之前文章中的引用链接xxx/?page=1这种,都不会受到影响,访问后会自动映射到xxx/page/1这样的静态风格的地址。
还有一个问题,如果你和我一样使用了WPS Hide Login插件来隐藏登录页面的话,是无法使用原来的链接,比如xxx/?icexmoon进行访问登录页面的,但是我尝试后发现是可以使用xxx/icexmoon进行访问的,只要去掉?符号就行。
参考资料:
文章评论