| 域名空间 下载中心 社区论坛 信息公告 my小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
讨论:谁实现过apache下的url重写技术?http://www.iyit.net 日期:2006-10-6 15:35:50 来源:iyit.net收集 点击: |
比如可以将: http://www.chedong.com/phpman.php?mode=man¶meter=ls 变成: http://www.chedong.com/phpman.php/man/ls 这种技术在apache下的配置有谁真正的实现过?欢迎大家讨论一下。 具体文章参考: http://www.chedong.com/tech/google_url.html apache模块 mod_rewrite http://i18n.linux.net.cn/others/apachemanual/mod/mod_rewrite.html --------------------------------------------------------------- 回复人: unijune(uni) ( ) 信誉:92 2003-12-16 10:23:04 得分:0 sports98 发表于 2003-12-5 16:40 php ←返回版面 [快速返回] 今日与同事在闲聊,在传递参数上,他和我说又个论坛使用了 xxxx.php/1000/20000 的传递方式进行了传递,于是就想了想最终写了这个代码 ---------------------------------------------------- (由于考虑到有的时候并不能很完善的兼容过来,因此代码兼容了两种传值方式.) 用以上所说的方法有个缺点:图片与联接必须使用绝对路径................... 以下是代码 -------------------------------------------------------------------------------- /******转换代码*********/ //不包含?设置的参标记 eg. http://localhost/index.php/page=2/ccc=3 if(!ereg("\\?",$_server[request_uri]) && ereg("/",$_server[request_uri])){ //下面将数据解析入get数组 $newgetarray=ereg_replace("$_server[script_name]/","",$_server[request_uri]); $newgetarray=ereg_replace("/","&",$newgetarray); parse_str($newgetarray,$_get); //不包含‘=’号的参数传递方式 eg. http://localhost/index.php/1/2 if(!ereg("=",$_server[request_uri])){ $keys=array_keys($_get); //本页内接受的参数排列顺序 $arraylist=array("forumid","threadid"); for($tempa=0;$tempa<count($keys);$tempa++){ $_get[$arraylist][$tempa]]=$keys[$tempa]; } } } /***************/ 转贴来了。 top 回复人: xiahouwen(活靶子.net) ( ) 信誉:100 2003-12-16 11:27:30 得分:0 想知道踢下 top 回复人: 141242() ( ) 信誉:99 2003-12-16 12:03:46 得分:0 实现过,但我个人认为极度影响速度,后来我就取消这样的重写技术了。 top 回复人: gaofaq(杀猪的) ( ) 信誉:98 2003-12-16 16:36:21 得分:0 问一下这个是干啥使的? top 回复人: jxyuhua(好好学习,天天进步!) ( ) 信誉:99 2003-12-16 19:23:16 得分:0 好象应该是在服务器(apache)上设置配置文件,没人用过吗? top 回复人: liyujie2000(开心的鱼) ( ) 信誉:99 2003-12-16 20:13:19 得分:0 是 apache 里面配置 rewriterule 的 你自己给出的连接 http://i18n.linux.net.cn/others/apachemanual/mod/mod_rewrite.html 中,介绍的很详细 top 回复人: kurt1983(科特) ( ) 信誉:100 2003-12-16 22:24:26 得分:0 看晕了 top 回复人: shos(和月 修) ( ) 信誉:101 2003-12-17 1:15:56 得分:0 得把好多 loadmodule 前的 # 去掉,比如:rewrite_module、proxy_module 等,记不清了,总之出什么错就去哪个就成了,参考英文文档中哪个命令对应哪个 module。 以下是把 http://localhost/iis/ 和 http://localhost/tom/ 转到相应端口的例子: (但如果没有最后的斜线是不行的,我不知道怎么解决。现在在用 iis,它可以完美的转换) proxypass /iis/ http://127.0.0.1:80/ proxypassreverse /iis/ http://127.0.0.1:80/ proxypass /tom/ http://127.0.0.1:8080/ proxypassreverse /tom/ http://127.0.0.1:8080/ top 回复人: xiahouwen(活靶子.net) ( ) 信誉:100 2003-12-17 9:57:16 得分:0 如何在虚拟主机实现 我的意思是通过编程实现 虚拟主机用户那来的权利去东php.ini、?? top 回复人: ashchen(陈辉) ( ) 信誉:120 2003-12-17 10:11:26 得分:0 ini_set()不就可以动php.ini了吗? top 回复人: mwjx() ( ) 信誉:99 2003-12-18 9:54:26 得分:0 mark top 回复人: xuzuning(唠叨) ( ) 信誉:492 2003-12-18 11:48:50 得分:0 很简单,只是自行解析参数 无须对apache服务器进行设置,你或许并无设置的权限。 <?php /* 此方法仅用于apache服务器 */ if(isset($_server[path_info])) //若path_info可用,注意aoache2默认不可用 $query_string = $_server[path_info]; else { $query_string = str_replace($_server[script_name],"",$_server[php_self]); //或 $query_string = str_replace($_server[script_name],"",$_server[request_uri]); } if(empty($query_string)) echo "没有参数"; else { echo "得到的参数串 $query_string<br/>"; $args = split("/",substr($query_string,1)); //分裂成数组 print_r($args); // 查看得到的参数数组。注意由于传递的参数没有变量名信息,你需要仔细的按位置确定参数的含义 ?> top 回复人: jxyuhua(好好学习,天天进步!) ( ) 信誉:99 2003-12-18 19:08:24 得分:0 这样能达到这种效果吗? http://www.chedong.com/phpman.php?mode=man¶meter=ls 变成: http://www.chedong.com/phpman.php/man/ls top 回复人: xuzuning(唠叨) ( ) 信誉:492 2003-12-19 8:45:11 得分:20 http://www.chedong.com/phpman.php/man/ls phpman.php为前述代码,则会显示 array ( [0] => man [1] => ls ) 你不测试一下吗? top 回复人: jxyuhua(好好学习,天天进步!) ( ) 信誉:99 2003-12-19 19:08:35 得分:0 老大,我试了:在本地建一文件demo.php,内容同上, 然后在浏览器中: http://localhost/websamples/demo.php/man/ls 出错,提示说找不到网页 然后我又这样试: http://localhost/websamples/demo.php?mode=man¶meter=ls 运行结果如下: array ( [0] => websamples [1] => demo.php ) ======================================================== 是我的方法不对吗? top 回复人: xuzuning(唠叨) ( ) 信誉:492 2003-12-20 15:42:04 得分:0 "出错提示说找不到网页"——你是用apache做web服务器的吗? top 回复人: jxyuhua(好好学习,天天进步!) ( ) 信誉:99 2003-12-22 8:55:32 得分:0 是的,apache2 top 回复人: xuzuning(唠叨) ( ) 信誉:492 2003-12-23 10:22:27 得分:0 我的是apache1.3.24,取默认设置 至于apache2应如何设置,在你提供的文档中已经说的很清楚了 top 回复人: nth(子蓝) ( ) 信誉:100 2003-12-23 11:02:31 得分:0 我不喜欢轻易的去改变默认apache的设置, 因为我觉得这样不利于我的程序移植。 我更愿意用重定向的技术来实现这个需求。 编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部] 上一篇:正则表达式的问题,重谢! 下一篇:如何用php获得当前网页的url 转载请注明来源:www.iyit.net 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 相关文章 | ||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||