关于PHP urlrewrite的问题

我已经把这个实现了,配置什么的就不用讲了。我想实现例如http://zhidao.baidu.com/?XXX的形式,但是我怎么写RewriteRule都不能实现以问号开... 我已经把这个实现了,配置什么的就不用讲了。我想实现例如http://zhidao.baidu.com/?XXX的形式,
但是我怎么写RewriteRule都不能实现以问号开头,求大神帮忙解决
展开
 我来答
Alljhatv
2014-01-13 · TA获得超过681个赞
知道小有建树答主
回答量:408
采纳率:87%
帮助的人:192万
展开全部

这个可以不用Rewrite实现的。

例如URL为:http://www.abc.com/?XYZ

你要获取XYZ,应该在index.php文件中这样写:

$id = $_SERVER['QUERY_STRING'];
// $id 就是获取到的值

// 如果要获取纯整数,请使用下面的代码
$id = (int) $_SERVER['QUERY_STRING'];

解释一下:$_SERVER['QUERY_STRING']就是URL中问号(?)后的内容。

这样就可以了。

追答

这个就可以不用正则了。服务器默认的URL缺省文件是index.php,

所以这个URL会直接指向index.php,只需要在index.php中处理就可以了。


然后,你就可以根据具体的QUERY_STRING从数据库获取数据了。

或者,如果有相应的php文件,你也可以直接包含文件:

// 检查是否只包含英文字母[a-zA-Z]
// 这是为了防止文件包含攻击
if (ctype_alpha($_SERVER['QUERY_STRING'])
    && file_exists($filename = ($_SERVER['QUERY_STRING']. '.php')))
{
    require $filename;
}

这样就可以了。

Harwise
2014-01-10 · TA获得超过2321个赞
知道小有建树答主
回答量:3299
采纳率:0%
帮助的人:1148万
展开全部
问号在正则中是特殊符号来的。所以如果你在正则中写了没出现,就是你没在?号前加上转义字符\  如:\?
更多追问追答
追问
就是家了转义还没用才来问的
追答
求正则
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
q2369582jhwe
2014-01-10 · TA获得超过364个赞
知道小有建树答主
回答量:473
采纳率:0%
帮助的人:178万
展开全部
RewriteRule是你的web引擎的...不是php,去看正则吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zien527
2014-01-10
知道答主
回答量:47
采纳率:0%
帮助的人:14万
展开全部
是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
adophper
2014-01-12 · TA获得超过232个赞
知道小有建树答主
回答量:570
采纳率:0%
帮助的人:178万
展开全部
要加转义符才得行哦
追问
加了没用啊
RewriteRule ^\?(\d+)$ /q.php?test=$1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-08
展开全部
apache+php环境的话,http://网站/?xxxx 等效于 http://网站/默认首页?xxxx

例如默认首页是index.php,就相当于index.php?xxxx
追问
我说的是urlrewrite,我想把http://网站/index.php?test=1,改写成http://网站/?1,我已经实现了改写成http://网站/1,现在想把问号加上去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式