WordPress固定链接无法使用,页面显示404错误
在wordpress目录下创建.htaccess,内容如下:
# BEGIN 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>
# END WordPress
在WordPress后台设置了自定义固定链接后,前台页面无法显示,提示404错误页面,但是原来默认的动态路径还是可以打开,这是为什么?
站长分析:
一般我们使用开源程序,如WORDPRESS这类程序时,都会先在本地调试,并上传些数据,如题所述的问题,在本站调试的时候就出现过,查阅了些资料,得出的结论,最大的可能性就是apache(PHP服务器)的配置出现了问题。
在后台设置了自定义的固定链接后,相当于是自定义了站点的伪静态规则,那么在调试的过程中,你的服务器环境就必须支持伪静态才可以打开静态的路径,一般能进后台配置固定路径,那么你的服务器环境大致是没有什么问题的,动态路径也可以打开,说明数据库连接及权限等问题都不大会存在问题,问题一般就出在你没有开启Apache支持伪静态的功能,如何实现呢?
前提条件:你用的是Apache服务器
先找到Apache安装的路径,在其根目录下“conf文件夹”中有一个文件叫“httpd.conf”,用记事本将它打开,按“ctrl+F”键,弹出查找窗口,输入“#LoadModule rewrite_module modules/mod_rewrite.so”,如果能找到的话,把前面的#删除,这个#号表示注释,也就是没有开启,我们去掉之后也就开启了“mod_rewrite”这一模块,如果找不到,再尝试输入“LoadModule rewrite_module modules/mod_rewrite.so”,看能否找到,如果能找到,说明这个模块已经开启,
继续查找“
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory> ”
将其中的“AllowOverride None”改为“AllowOverride all”,为保险起见,你也可以再查找一下“AllowOverride None”,可能会出现多处,全部替换成“AllowOverride all”,然后保存文件。
接下来,重启apache服务器,再去后台保存一下“固定链接”,重新打开页面,看是否能够打开了。
如果你不是Apache服务器,而是用的IIS调试的话,那就得去安装一个 “ISAPI_Rewrite3_0069_Lite.msi”筛选器,然后在站点设置里面将PHP置为优先级。
转载自:百度文库
nginx下静态链接配置完成以后,需要修改配置文件:
location / {
index index.html index.php;
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修改方法,简单有效。
//伪静态规则来自宝塔控制面板
location /
{
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;