SuperTaoer::Thanksgiving

把力量使用在最后冲刺的时候。

十月 7, 2005

apache的modrewrite简单的写法

类归于: 程序 技术 — SuperTaoer @ 3:36 上午

今天在 给自己的blog增加一个插件 的时候学习了一些apache的modrewrite,

框架大致为:

  1. <Directory "/html/taoer_com/blog">    #这里修改为你的实际路径
  2. <IfModule mod_rewrite.c>
  3.  
  4. RewriteEngine On
  5. RewriteBase /    #这里的/你也可以修改为其他的网站的路径,下面所有匹配的规则都会以Directory+这里设置的路径为起点的
  6. RewriteCond %{REQUEST_FILENAME} -f [OR]
  7. RewriteCond %{REQUEST_FILENAME} -d
  8. #RewriteRule ^.*$ - [S=35] #这个和下面那行不知道是作什么用的,感觉是匹配的字符串长度的设置吧?希望知道的朋友留言告诉我,谢谢 :)
  9. RewriteRule ^.*$ - [S=40]
  10.  
  11. RewriteRule #后面就是你要匹配的规则了 #然后这里是你要重定向的规则  [QSA,L]#这个选项不知是干什么用的
  12.  
  13. </IfModule>
  14. </Directory>

一般的比如你要把 /index 重定向为 /index.php
你要这么写一条规则
RewriteRule ^index/?$ /index.php [QSA,L]
如果有get参数的话,
比如:/index/page/3/category/5 重定向为 /index.php?page=3&category=5
你要这么做
RewriteRule ^index/page/(.+)/category/(.+)/?$ /index.php?page=$1&category=$2 [QSA,L]
这里的$1,$2即为符合匹配条件的第几个参数。
又或者这样,
/index/category/3 或 /index/page/5 重定向为 /index.php?page=3或者 /index.php?category=5
你可以这么写
RewriteRule ^index/(page|category)/(.+)/?$ /index.php?$1=$2 [QSA,L]
这么写没有试过,按照常规来说应该是可以的,有兴趣的朋友可以试试看 :)

先说这么多吧,有兴趣的朋友可以一起交友下。



Leave a Message

2 Messages

RSS feed for comments on this post. TrackBack URI

Leave a Message





Powered by WordPress