关于wordpress在修改固定链接后,总显示Not Found的问题

摘要:
它将自定义URL地址,也就是说,让Apache支持mod_ Rewrite模块,启用mod_ Rewriter模块方法:删除之前的#3,搜索AllowOverrideNone并将其替换为AllowOverrideAll。保存文件-˃重新启动Apache-˃刷新站点文章。mod_ Rewrite拦截满足特定条件的URL。pid=123312等URL重写为http:

参考来源:

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。

关于wordpress在修改固定链接后,总显示Not Found的问题第1张

下图,无法显示文章内容

关于wordpress在修改固定链接后,总显示Not Found的问题第2张

三、解决问题

我忽略了一个问题,那就是要让Apache支持mod_rewrite模块,而我并没有在Apache的配置文件中开启。

开启Mod_rewrite模块方法:

1、直接打开apacheconfhttpd.conf

2、搜索 LoadModule rewrite_module modules/mod_rewrite.so (可能版本不一样这个不一样,不过Apache2都是这个),去掉前面的#

3、 搜索AllowOverride None 替换为 AllowOverride All

保存文件-》重启Apache-》刷新站点

文章显示了。如图:

关于wordpress在修改固定链接后,总显示Not Found的问题第3张

关于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的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇input输入框,在手机上,软键盘会将固定定位和绝对定位的按钮顶起,解决办法DebugPort 清0下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jpgraph 折线图--解决中文乱码的问题(标题和图例)

在jpgraph根目录中: 如Jpgjpgraph_ttf.inc.php 中开头添加 define('CHINESE_TTF_FONT','SIMYOU.TTF'); Jpgjpgraph_legend.inc.php 中大约24行添加 修改 public $font_family=FF_CHINESE,$font_style=FS_NORMAL,$fo...

冗余代码都走开——前端模块打包利器 Rollup.js 入门

之前翻译过一篇文章,介绍了通过 ES2015 的解构赋值语法引入模块,可以让打包工具(browserify)最终编译出来的代码量最小化。 殊不知在 webpack 1.X 版本是无法利用该特性来避免引入冗余模块代码的,导致打出来的 bundle 文件大小难免略有臃肿。 今天则向大家介绍一个当红炸子鸡——Rollup.js,通过它可以让你的 bundle 最...

数据库定时清理脚本配置

定时 数据库清理的两个脚本: 按天删除: #!/bin/bash ndate=3 datestr=`date -d "-$ndate day" +%Y-%m-%d` #生成ndate天前的日期,如: echo $datestr delSqlStr="DELETE FROM xxxx WHERE GeneDate = '$datestr'" #SQL语句...

linux中sudo的用法和sudoers配置详解

原文地址:http://ncforest.blog.163.com/blog/static/295626642007551417331/ 1.sudo的配置文件是/etc/sudoers ,我们可以用他的专用编辑工具visodu ,此工具的好处是在添加规则不太准确时,保存退出时会提示给我们错误信息;配置好后,可以用切换到您授权的用户下,通过sudo -l...

webpack的环境变量以及配置请求路径

使用create-app-react创建项目,执行npm run eject暴露配置文件 进入config->env.js文件,在该文件中找到getClientEnvironment函数,此函数返回的是客户端的环境变量 在getClientEnvironment函数中,NODE_ENV既为环境变量,在外部可以直接使用process.env.NODE...

使用pc控制GOPRO6拍照

方法如下: 1、在GoPro6触摸屏向下滑动“连接”-"连接新的设备-"GoPro 应用”。 2、出现“等待应用”,显示GoPro 的相机名称以及密码。 3、在pc端,点击wifi标志,选择gp打头的wifi id,显示“断开连接”即表示连接成功。 4、安装chrome插件“Advanced REST client”。 5、打开“Advanced RES...