前由
wordpress的固定链接对于博客的seo优化是非常重要的。因为有些默认设置并不怎么友好,所以我们可以自定义设置自己的想要的固定链接,比如自定义连接结构为:/%post_id%.html
。但是往往我们更改之后会出现404页面,这是网站的伪静态出了问题。
下面是在不同环境下的不同解决方法。
1. nginx
如果使用宝塔建站那么就简单许多,打开网站设置,写入伪静态规则保存即可。
location / {
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;
}
}
如果是其他环境,找到网站的 nginx.conf ,例如 /usr/local/nginx/conf/vhost/huahai.club.conf
,在 server 的大括号内添加上面代码并保存即可。记得重启 nginx
使之生效。
2.apache
建立 .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>
3.IIS
在网站根目录建立一个 httpd.ini
文件,写入以下代码。
[ISAPI_Rewrite]
# Defend your computer from some worm attacks
#RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
# Protect httpd.ini and httpd.parse.errors files
# from accessing through HTTP
# Rules to ensure that normal content gets through
RewriteRule /tag/(.*) /index\.php\?tag=$1
RewriteRule /software-files/(.*) /software-files/$1 [L]
RewriteRule /images/(.*) /images/$1 [L]
RewriteRule /sitemap.xml /sitemap.xml [L]
RewriteRule /favicon.ico /favicon.ico [L]
# For file-based wordpress content (i.e. theme), admin, etc.
RewriteRule /wp-(.*) /wp-$1 [L]
# For normal wordpress content, via index.php
RewriteRule ^/$ /index.php [L]
RewriteRule /(.*) /index.php/$1 [L]
Last modification:August 13th, 2019 at 08:50 pm