关于PHP urlrewrite的问题
我已经把这个实现了,配置什么的就不用讲了。我想实现例如http://zhidao.baidu.com/?XXX的形式,但是我怎么写RewriteRule都不能实现以问号开...
我已经把这个实现了,配置什么的就不用讲了。我想实现例如http://zhidao.baidu.com/?XXX的形式,
但是我怎么写RewriteRule都不能实现以问号开头,求大神帮忙解决 展开
但是我怎么写RewriteRule都不能实现以问号开头,求大神帮忙解决 展开
展开全部
这个可以不用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;
}
这样就可以了。
展开全部
问号在正则中是特殊符号来的。所以如果你在正则中写了没出现,就是你没在?号前加上转义字符\ 如:\?
更多追问追答
追问
就是家了转义还没用才来问的
追答
求正则
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
RewriteRule是你的web引擎的...不是php,去看正则吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊是啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要加转义符才得行哦
追问
加了没用啊
RewriteRule ^\?(\d+)$ /q.php?test=$1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-08
展开全部
apache+php环境的话,http://网站/?xxxx 等效于 http://网站/默认首页?xxxx
例如默认首页是index.php,就相当于index.php?xxxx
例如默认首页是index.php,就相当于index.php?xxxx
追问
我说的是urlrewrite,我想把http://网站/index.php?test=1,改写成http://网站/?1,我已经实现了改写成http://网站/1,现在想把问号加上去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询