讨论:谁实现过Apache下的URL重写技术?

比如可以将:
http://www.chedong.com/phpMan.php?mode=man&parameter=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

 1<count($keys);$tempa++){ ";="" "得到的参数串="" "没有参数";="" #="" $_get[$arraylist][$tempa]]="$keys[$tempa];" $args='split("/",substr($query_string,1));' $query_string="" (="" (但如果没有最后的斜线是不行的,我不知道怎么解决。现在在用="" )="" *="" ***************="" 10:11:26="" 11:27:30="" 11:48:50="" 127.0.0.1:80="" 127.0.0.1:8080="" 12:03:46="" 141242()="" 16:36:21="" 19:08:24="" 19:23:16="" 1:15:56="" 2003-12-16="" 2003-12-17="" 2003-12-18="" 2003-12-19="" 20:13:19="" 22:24:26="" 8:45:11="" 9:54:26="" 9:57:16="" [0]="" ```="" apache="" apachemanual="" array="" ashchen(陈辉)="" echo="" else="" gaofaq(杀猪的)="" http:="" i18n.linux.net.cn="" if(empty($query_string))="" if(isset($_server[path_info]))="" iis="" iis,它可以完美的转换)="" ini_set()不就可以动php.ini了吗?="" jxyuhua(好好学习,天天进步!)="" kurt1983(科特)="" liyujie2000(开心的鱼)="" loadmodule="" localhost="" ls="" man="" mark="" mod="" mod_rewrite.html="" module。="" mwjx()="" others="" phpman.php="" phpman.php?mode="man¶meter=ls" phpman.php为前述代码,则会显示="" print_r($args);="" proxypass="" proxypassreverse="" rewriterule="" shos(和月="" tom="" top="" www.chedong.com="" xiahouwen(活靶子.net)="" xuzuning(唠叨)="" {="" }="" 中,介绍的很详细="" 以下是把="" 你自己给出的连接="" 信誉:100="" 信誉:101="" 信誉:120="" 信誉:492="" 信誉:98="" 信誉:99="" 修)="" 分裂成数组="" 前的="" 去掉,比如:rewrite_module、proxy_module="" 变成:="" 和="" 回复人:="" 好象应该是在服务器(apache)上设置配置文件,没人用过吗?="" 如何在虚拟主机实现="" 实现过,但我个人认为极度影响速度,后来我就取消这样的重写技术了。="" 很简单,只是自行解析参数="" 得分:0="" 得分:20="" 得把好多="" 想知道踢下="" 我的意思是通过编程实现="" 或="" 无须对apache服务器进行设置,你或许并无设置的权限。="" 是="" 查看得到的参数数组。注意由于传递的参数没有变量名信息,你需要仔细的按位置确定参数的含义="" 此方法仅用于apache服务器="" 的="" 看晕了="" 等,记不清了,总之出什么错就去哪个就成了,参考英文文档中哪个命令对应哪个="" 若path_info可用,注意aoache2默认不可用="" 虚拟主机用户那来的权利去东php.ini、??="" 转到相应端口的例子:="" 转贴来了。="" 这样能达到这种效果吗?="" 里面配置="" 问一下这个是干啥使的?=""&gt; man   
 2[1] =&amp;gt; ls   
 3)   
 4  
 5你不测试一下吗?   
 6  
 7  
 8  
 9  
10Top   
11  
12回复人: jxyuhua(好好学习,天天进步!) ( ) 信誉:99 2003-12-19 19:08:35 得分:0   
13  
14  
15  
16老大,我试了:在本地建一文件demo.php,内容同上,   
17然后在浏览器中:   
18http://localhost/websamples/demo.php/man/ls   
19出错,提示说找不到网页   
20然后我又这样试:   
21http://localhost/websamples/demo.php?mode=man&amp;amp;parameter=ls   
22运行结果如下:   
23Array ( [0] =&amp;gt; websamples [1] =&amp;gt; demo.php )   
24========================================================   
25是我的方法不对吗?   
26  
27  
28  
29Top   
30  
31回复人: xuzuning(唠叨) ( ) 信誉:492 2003-12-20 15:42:04 得分:0   
32  
33  
34  
35"出错提示说找不到网页"——你是用apache做web服务器的吗?   
36  
37  
38  
39Top   
40  
41回复人: jxyuhua(好好学习,天天进步!) ( ) 信誉:99 2003-12-22 8:55:32 得分:0   
42  
43  
44  
45是的,apache2   
46  
47  
48  
49Top   
50  
51回复人: xuzuning(唠叨) ( ) 信誉:492 2003-12-23 10:22:27 得分:0   
52  
53  
54  
55我的是apache1.3.24,取默认设置   
56至于apache2应如何设置,在你提供的文档中已经说的很清楚了   
57  
58  
59  
60  
61Top   
62  
63回复人: nth(子蓝) ( ) 信誉:100 2003-12-23 11:02:31 得分:0   
64  
65  
66  
67我不喜欢轻易的去改变默认apache的设置, 因为我觉得这样不利于我的程序移植。 我更愿意用重定向的技术来实现这个需求。&lt;/count($keys);$tempa++){&gt;
Published At
Categories with Web编程
comments powered by Disqus