参考来源:

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. sitecustomize.py 用法

    1.在python安装目录下的lib下的site-packages 目录中,新建文件sitecustomize.py.这是个特殊的文件,在python启动时会自动执行其中的语句.在sitecustom ...

  2. PHP利器-WAMPServer

    为了配置memcacheAdmin,牵涉到搭建PHP的环境,使用的是WAMPServer,安装之后,需要对apache进行配置, 端口,需要将wamp\bin\apache\Apache2.2.21\ ...

  3. NOI冲刺计划

    省选过了,剩下大概是NOI冲刺了吧.中间还有一大堆诸如会考,CTSC,APIO等东西. 最近先不急着天天刷八中了吧,多在不同网站见一些题,然后再着重提高一下代码准确性.重点把DP这个板块多练习一下,八 ...

  4. 计算几何模板 (bzoj 1336,poj 2451 ,poj3968)

    poj 3968 (bzoj 2642) 二分+半平面交,每次不用排序,这是几个算几版综合. #include<iostream> #include<cstdio> #incl ...

  5. IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容

    环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: 以下是使用IIS的域名: http://www.formuch.com/ http://www.fo ...

  6. javascript中通过replace函数搜索和替换指定字符串

    javascript中我们可以通过replace函数替换部分字符串为指定字符串,本文展示了replace的详细用法,并且通过范例演示了如何进行部分替换.完整替换和不区分大小写替换. javascrip ...

  7. cocos2d-x拖动滑块控件CCControlSlider

    #include "GameMusicSetting.h" bool GameMusicSetting::init() { if(!CCLayer::init()) { retur ...

  8. $response->decoded_content; 和$response->content; 乱码问题

    centos6.5:/root/podinns/lib#cat t1.pl use LWP::UserAgent; use HTTP::Date qw(time2iso str2time time2i ...

  9. 项目属性-->生成事件-->后期生成事件命令行

    以开源记牌器https://github.com/Epix37/Hearthstone-Deck-Tracker 为例,Hearthstone Deck Tracker项目中的后期生成事件命令行: i ...

  10. Linux查看硬件信息,主板型号及内存硬件,驱动设备,查看设备,查看CPU。

    用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart) 查看CPU信息:cat /proc/cpuinfo 查看板卡信息:cat /proc/pci 查 ...