0

有了这个 url 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;
4

1 回答 1

1

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

您的代码应如下所示:

RewriteCond %{QUERY_STRING} RegexHere
RewriteRule URLRegexHere NewURL

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

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

更多关于 Mod_Rewrite的信息

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

于 2012-06-10T01:13:22.283 回答