参考来源:

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的问题的更多相关文章

  1. 解决wordpress修改固定链接后出现404错误不能访问文章的方法

    首先,建议大家安装完wordpress网站程序之后第一时间设置一下固定链接,避免以后修改出错.在wp后台仪表盘左侧导航里找到“设置——固定链接”即可配置你的wordpress固定链接,通常我习惯使用的 ...

  2. wordpress修改固定链接及修改链接后链接提示404错误的解决办法

    wordpress默认的url实在是不好看又不好记忆,而且还不利于SEO.因此,我就捣鼓着把url做一个自定义.自定义的方式如下: 建议使用/%postname%的形式,这样利于SEO. 修改之后,l ...

  3. WordPress基础:固定链接的设置

    安装wordpressp后的工作之一最好修改固定链接,原因就是wp默认的/?p=123形式不利于搜索引擎优化而且也不美观. URL结构参数说明:%year%:日志发表的年份,如2009%monthnu ...

  4. SAE设置记录:修改config.yaml实现地址重写和修改固定链接

    刚搭建完sae博客后闲置下来了,偶尔写两篇文章,最近想整理整理sae,于是开始. 刚新建完博客修改固定链接,可是保存后直接访问出现问题,访问不到文章了,而且我的博客地址前面会出现"1.&qu ...

  5. WordPress固定链接后404的解决方法

    一般Wordpress自带的链接是一大串数字加符号,不美观也不明确,一般要设置成固定链接,而设置成功后大部分情况访问文章,子链接都会出现404界面,我找了网上的资料,才知道需要配置伪静态链接, 一般的 ...

  6. Nginx下修改wordpress固定链接后导致访问文章404

    假设我的wordpress博客是的 server{}段是直接放到放到了nginx.conf  (有的人为了方便管理,都习惯在单独写个vhost/目录来存放每个网站的配置文件,这就要根据你自己的设置来添 ...

  7. wordpress设置“固定链接”后,页面404错误的解决方法

    Nginx 解决方案: 网上盛传的方法是: 在 /etc/nginx/nginx.conf文件的 loction / {} 中添加 if (-f $request_filename/index.htm ...

  8. WordPress更改“固定链接”后 ,页面出现404的解决方法

    一.Web服务器对应的是Nginx 解决方案:修改linux服务器下Nginx的配置文件,目录为:/usr/local/nginx/conf/nginx.conf, 也可以直接使用命令nginx -t ...

  9. 解决ubuntu下wordpress设置固定链接后文章无法打开

    1.首先查看是否开启了Apache的rewrite功能,新建一个phpinfo的php文档 <?php phpinfo(); ?> 保存为info.php文件 放在www目录下并用浏览器打 ...

随机推荐

  1. WPF窗体禁用最大化按钮

    禁用WPF窗体的最大化按钮可以使用Windows API改变按钮状态的方法实现.使用GetWindowLong可以得到当前按钮的状态.使用SetWindowLong可以设置按钮的状态.使用SetWin ...

  2. nRF52系列——nRF52832来袭

    nRF52系列——nRF52832来袭 Nordic凭借着在无线技术的数十年深耕,推出第一个μBlue芯片-- nRF8001.其低功耗等特性在当时吸引了无数厂商的目光,并将这产品应用到多个领域,再之 ...

  3. Mongoengine 使用笔记

    1.直接将某个document对象导出对应的json数据. #models class Feed(Document): """ @summary: 所有订阅内容 &quo ...

  4. 树莓派-交叉编译环境搭建(Eclipse)

    转自别人的文章(http://www.cnblogs.com/emouse/archive/2013/06/07/3124063.html),一些看不清楚的图片替换了一下. In this blog  ...

  5. 版本控制工具git入门

    版本控制工具的历史 不说了,放张图 两者的区别:集中式需要一个中心服务器放置最新的文件,需要联网操作.分布式可以再不联网的情况下操作,前提要拥有版本库 git安装  略 github注册 略 如何在g ...

  6. UIWebView1-b

    随着H5的强大,hybrid app已经成为当前互联网的大方向,单纯的native app和web app在某些方面显得就很劣势.关于H5的发展史,这里有一篇文章推荐给大家,今天我们来学习最基础的基于 ...

  7. Server-Side Access Control

    Firefox 3.5 implements the W3C Access Control specification.  As a result, Firefox 3.5 sends specifi ...

  8. 超级 Ping 监测工具——为您的网络状态保驾护航

    关于 Ping Ping 是一个网络命令,主要是用于确定本地主机是否能与另一台主机交换(发送与接收)数据.根据返回的信息,就可以推断 TCP/IP 参数是否设置得正确以及运行是否正常.正常情况下,Pi ...

  9. Java 声明和访问控制(三) finalize方法 成员访问修饰符

    finalize()方法是Object类的一个方法,在垃圾回收器执行的时候,会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源的回收,例如文件关闭等. 成员访问修饰符: 默认访问:包访问 ...

  10. LinkedHashMap和HashMap的比较使用 由于现在项目中用到了LinkedHashMap,并不是太熟悉就到网上搜了一下。 ? import java.util.HashMap; impo

    LinkedHashMap和HashMap的比较使用 由于现在项目中用到了LinkedHashMap,并不是太熟悉就到网上搜了一下. import java.util.HashMap; import ...