快捷搜索:   nginx

什么叫做伪静态,mod_rewrite的一些知识简介

  之前搞wordpress的时候经常涉及到伪静态,也就是mod_rewrite这个名词,然后一开始的时候也不是十分清楚,只知道是用来转换地址为html改良收录,今天终于有空找了一篇比较好的文章,发上来跟各位一起学习下,什么叫做伪静态mod_rewrite,

  以下是关于mod_rewrite的一些知识简介:

  首先要开启apache的mod_rewrite功能。

  在apache目录的apacheconf 这个文件夹下的httpd.conf文件用记事本打开编辑,找到如下一句:

  #LoadModule rewrite_module modules/mod_rewrite.so

  将前面的#号去掉,变成:

  LoadModule rewrite_module modules/mod_rewrite.so

  然后再在同一文件找到下面一句:

  AllowOverride None

  将其改为:

  AllowOverride All

  然后关闭并保存文件。这样一来,Apache的mod_rewrite的功能就被开启,非常简单。

  下面,我要用mod_rewrite实现这样的URL:

  http://xxx.com/0725.html

  http://xxx.com/0726.html

  http://xxx.com/0727.html

  …

  上面链接的意思,就是显示07月25日的历史上发生了什么事情,类似这样。这样看起来就很美观、整齐了,貌似生成html了。然,他们地址实际是:

  http://xxx.com/index.php?today=0725

  http://xxx.com/index.php?today=0726

  http://xxx.com/index.php?today=0727

  …

  现在我就是要实现把 index.php?today=为静态。以下是代码:

  1..htaccess 文件

  RewriteEngine On

  RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f

  RewriteCond  %{REQUEST_FILENAME} !-d

  RewriteRule ^([0-9]+).html$  /index.php?today=$1

  粗体字这里我说明一下,其它的按这个格式吧,具体我现在也不理解。

  [0-9]的意思是,参数只能是0~9这些数字,如果你要包含任何字符,就改为:

  RewriteRule ^(.+).html$ /index.php?today=$1

  这里[0-9]改为了. ,这个.就代表任意字符

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论