比如可以将:
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、??="" 转到相应端口的例子:="" 转贴来了。="" 这样能达到这种效果吗?="" 里面配置="" 问一下这个是干啥使的?=""> man
2[1] =&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;parameter=ls
22运行结果如下:
23Array ( [0] =&gt; websamples [1] =&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的设置, 因为我觉得这样不利于我的程序移植。 我更愿意用重定向的技术来实现这个需求。</count($keys);$tempa++){>