关于wordpress在修改固定链接后,总显示Not Found的问题
参考来源:
http://chinablog.blog.51cto.com/276793/280278
一、问题背景
使用wordpress搭建网站,为了让文章URL看起来漂亮一点,wordpress提供了设置-》固定链接设置-》选择你喜欢的url结构。
所以,我们一般为了用户看着这个url顺眼一点,会进行url地址的自定义,比如:http://localhost/wordpress/archives/36.html,wordpress默认的是http://localhost/wordpress/archives/36,也就是说我们能自定义这个url结构。
二、问题存在
我就如图所示选择了数字型的url结构,然后保存设置,点击站点查看。
看到的结果是Not Found。
下图,无法显示文章内容
三、解决问题
我忽略了一个问题,那就是要让Apache支持mod_rewrite模块,而我并没有在Apache的配置文件中开启。
开启Mod_rewrite模块方法:
1、直接打开apache\conf\httpd.conf
2、搜索 LoadModule rewrite_module modules/mod_rewrite.so (可能版本不一样这个不一样,不过Apache2都是这个),去掉前面的#
3、 搜索AllowOverride None 替换为 AllowOverride All
保存文件-》重启Apache-》刷新站点
文章显示了。如图:
关于Mod_rewrite
mod_rewrite这个模块是如何工作的呢?
mod_rewrite截获符合特定条件的URL,并按照设定的规则将它们改写成需要的URL。
比如,可以将 http://www.mysite.com/product.php?pid=123312 这样的URL改写成
http://www.mysite.com/product-123312.html 这样的静态URL
重写的规则
重写的规则的表达式:
RewriteRule 模式 替换 [选项]
RewriteRule 是一个简单的命令告诉mod_rewrite这个模块如何去重写,关键的地方在于可以在模式和替换中使用正则表达式来匹配相应的字符,正则表达式的广泛的灵活性能将动态的URL转换成各式各样的符合要求的静态URL。看看这个重写规则:
RewriteRule /products/([0-9]+)
/fancy/products.php?id=$1
当你在浏览器地址栏输入 http://www.mysite.com/product/123 时,这个地址被重写为 http://www.mysite.com/fancy/product.php?id=123
这样,访问者就无法知道你的程序真正放在那个目录,程序的真正名字是什么,这也提高了网站的安全系数;这样的URL也去掉了?=这些字符,易于搜索引擎的机器人爬行你的网站。
通过正则表达式,可以写出更复杂的重写规则:
RewriteRule ^/products$ /content.php
RewriteRule ^/products/([0-9]+)$ /content.php?id=$1
RewriteRule ^/products/([0-9]+),([ad]*),([0-9]{0,3}),([0-9]*),([0-9]*$)
重写规则的选项有
- ‘forbidden’ 或 ‘f’ - 403 禁止
- ‘gone’ 或 ‘g’ - 410 gone
- ‘nocase’ 或 ‘NC’ - 大小写敏感
- ‘next’/N’ - 回到第一条规则
- ’skip=N’ 或 ‘S=N’ - 跳过下面的N条规则
看到这里,又再次提醒我学习正则表达式,要学习的还有好多好多。
关于wordpress在修改固定链接后,总显示Not Found的问题的更多相关文章
- 解决wordpress修改固定链接后出现404错误不能访问文章的方法
首先,建议大家安装完wordpress网站程序之后第一时间设置一下固定链接,避免以后修改出错.在wp后台仪表盘左侧导航里找到“设置——固定链接”即可配置你的wordpress固定链接,通常我习惯使用的 ...
- wordpress修改固定链接及修改链接后链接提示404错误的解决办法
wordpress默认的url实在是不好看又不好记忆,而且还不利于SEO.因此,我就捣鼓着把url做一个自定义.自定义的方式如下: 建议使用/%postname%的形式,这样利于SEO. 修改之后,l ...
- WordPress基础:固定链接的设置
安装wordpressp后的工作之一最好修改固定链接,原因就是wp默认的/?p=123形式不利于搜索引擎优化而且也不美观. URL结构参数说明:%year%:日志发表的年份,如2009%monthnu ...
- SAE设置记录:修改config.yaml实现地址重写和修改固定链接
刚搭建完sae博客后闲置下来了,偶尔写两篇文章,最近想整理整理sae,于是开始. 刚新建完博客修改固定链接,可是保存后直接访问出现问题,访问不到文章了,而且我的博客地址前面会出现"1.&qu ...
- WordPress固定链接后404的解决方法
一般Wordpress自带的链接是一大串数字加符号,不美观也不明确,一般要设置成固定链接,而设置成功后大部分情况访问文章,子链接都会出现404界面,我找了网上的资料,才知道需要配置伪静态链接, 一般的 ...
- Nginx下修改wordpress固定链接后导致访问文章404
假设我的wordpress博客是的 server{}段是直接放到放到了nginx.conf (有的人为了方便管理,都习惯在单独写个vhost/目录来存放每个网站的配置文件,这就要根据你自己的设置来添 ...
- wordpress设置“固定链接”后,页面404错误的解决方法
Nginx 解决方案: 网上盛传的方法是: 在 /etc/nginx/nginx.conf文件的 loction / {} 中添加 if (-f $request_filename/index.htm ...
- WordPress更改“固定链接”后 ,页面出现404的解决方法
一.Web服务器对应的是Nginx 解决方案:修改linux服务器下Nginx的配置文件,目录为:/usr/local/nginx/conf/nginx.conf, 也可以直接使用命令nginx -t ...
- 解决ubuntu下wordpress设置固定链接后文章无法打开
1.首先查看是否开启了Apache的rewrite功能,新建一个phpinfo的php文档 <?php phpinfo(); ?> 保存为info.php文件 放在www目录下并用浏览器打 ...
随机推荐
- Python全栈开发之MySQL(二)------navicate和python操作MySQL
一:Navicate的安装 1.什么是navicate? Navicat是一套快速.可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开发人员及中小 ...
- redis的安装-windows和linux
windows 下载地址:http://code.google.com/p/servicestack/wiki/RedisWindowsDownload 下载解压到D盘下: 进到该目录下,有下列文件: ...
- win8 开启wifi
1,以管理员身份运行命令提示符,输入命令 netsh wlan set hostednetwork mode=allow ssid=networkname key=password后回车 其中ssid ...
- 普及下Oracle hints语法
普及下Oracle hints的语法:{DELETE|INSERT|SELECT|UPDATE} /*+ hint [text] [hint[text]]... */ 1.hint只能出现在诸如sel ...
- IEngineEditor与IWorkspaceEdit,以及相关的事件监听
转自原文 IEngineEditor与IWorkspaceEdit,以及相关的事件监听 IEngineEditor适用于直接在图层上的编辑,例如使用"要素编辑"工具菜单上的&quo ...
- jersey REST的接口简述
GET方法:只读,是幂等和安全的.在接口中抽象地定义了资源的请求方法类型后,其全部实现类都无须再定义. HEAD方法:与GET方法相似,只是服务器端的返回值不包括HTTP实体. OPTIONS方法:与 ...
- 百度预测 及 maven pom搜索地址
http://trends.baidu.com/ http://mvnrepository.com/artifact/net.sourceforge.htmlcleaner/htmlcleaner/2 ...
- Linq查询出结果集中重复数据
private List<FMDS_FarmPlotNewInfo> GetSame(List<FMDS_FarmPlotNewInfo> lst) { List<FMD ...
- leetcode面试准备:Valid Anagram
leetcode面试准备:Valid Anagram 1 题目 Given two strings s and t, write a function to determine if t is an ...
- DIV 清除样式浮动万能代码
.talk { width: 100%; margin: 10px 0; } .talk:after { ...