.htaccess $ _GET ['p']无效

时间:2012-06-10 01:02:32

标签: mod-rewrite

使用此网址http://www.example.com/cp/pending/thepage,当我$_GET['p'];时,我应该thepage返回。什么都没有归还,我该如何解决?

这是mod重写。

RewriteRule ^cp/([A-Za-z0-9-]+)(&type=[A-Za-z0-9-]+)?(/[A-Za-z0-9-]+)?(&to=[A-Za-z0-9-]+)?(&r=[A-Za-z0-9-]+)?(&g=[A-Za-z0-9-]+)?(&page=[A-Za-z0-9-]+)?/?$ /cp.php?o=$1&type=$2&c=$3&p=$4&r=$5&g=$6&page=$7 [L]

这是php

$p = $_GET['p'];
echo $p;

1 个答案:

答案 0 :(得分:1)

查询字符串不是URL的一部分。

您的代码应如下所示:

RewriteCond %{QUERY_STRING} RegexHere
RewriteRule URLRegexHere NewURL

如果您使用URL的任何部分来创建新的查询字符串,则需要使用[QSA]标志来附加其他参数。 E.g:

RewriteRule ^cp/pending/([^/])/?$ page.php?page=$1 [L,QSA]

有关Mod_Rewrite here的更多信息。

此外,正如$ n反向引用是针对RewriteRule正则表达式中匹配的模式一样,%n反向引用用于RewriteCond正则表达式中的模式匹配。