rewrite 一例
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://liuyu.blog.51cto.com/183345/66445 |
首先感谢帮助过我的朋友。前几天学习了 rewrite 写个心得吧。
URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程
原题:
转换为:
new.com是在VM里建的,把本机HOSTS指到VM_IP 就好了
我的测试脚本:index.php
<?php echo '<pre>'; var_dump($_REQUEST); ?> 看了一上午,了解了一些简单的基础知识。
并在CU里看了大量的例子,得到乔楚大哥的一例:
RewriteRule /work/([^/]+)/([^/]+)/([^/]+)
可惜测试没有通过。不知道是不是我测试方法不对。。
无奈,继续写。 在继续写之前,发现正则,与后面的 [L,R] 这都是啥意思??
继续查看得知:
文本 . 任意一个单字符 [chars] 字符类: "chars"中的任意一个字符 [^chars] 字符类: 不在"chars"中的字符 text1|text2 选择: text1 或 text2 量词 ? 前面的字符出现 0 或 1 次 * 前面的字符出现 0 或 N 次(N > 0) + 前面的字符出现 1 或 N 次(N > 1) 分组 (text) text 组 (常用于设置一个选择的边界,或用于生成后引用: 在RewriteRule中可以用 $N 引用第N个分组) 锚 ^ 锚定到行首 $ 锚定到行尾 转义 \c 对给定的字符c进行转义 (比如对".[]()"进行转义,等等) C (链接下一规则) F (强制禁止URL) G (强制废弃URL) N (从头再来) L (结尾规则) NC (忽略大小写) P (强制为代理) PT (移交给下一个处理器) QSA (追加查询字符串) R (强制重定向) 知识是了解了,想了半天还是没有想到好的解决办法。
没办法,只能拆开了。分二步建虚拟主机+rewrite
<VirtualHost *> ServerName work.new.com DocumentRoot /usr/local/apache2/htdocs/new/work DirectoryIndex index.php <Directory "/usr/local/apache2/htdocs/new/work"> AllowOverride All Allow from All </Directory> </VirtualHost> 想了半天,只能把URL 写死。
RewriteEngine on RewriteRule ^/list/para/test /work/index.php?action=list¶=test [PT] RewriteLog "/usr/local/apache2/logs/rewrite.log" RewriteLogLevel 99 RewriteEngine on ----开启rewrite 这一项一定要有,要不会报错。
RewriteLog 记录下日志,报什么错,可以查看日志得知。
测试能通过。访问正常。
可是URL 不是死的呀。人家可是找我要活的,给人家一死的,还不骂死我啊。
继续看吧,整整二天。我头都大了。请教了不少高手,只开花不结果~~~
破玩意还是写出来了!
RewriteRule ^/([^.]*)$ /index.php?action=%{REQUEST_URI} [QSA,L] 其实写成:
RewriteRule ^/([^.]*)$ /index.php 也可以。
其实就是正则的用法,记住每一个符号的用法,一个一个的测试。总会成功!
不管过程如何,结果是完成了任务,只是晚了点。
但我学得却茫然!
本文出自 “seven” 博客,请务必保留此出处http://liuyu.blog.51cto.com/183345/66445 本文出自 51CTO.COM技术博客 |



守住每一天
博客统计信息
热门文章
最新评论
友情链接


