【发布时间】:2013-02-21 04:34:05
【问题描述】:
我正在尝试做的是一个非常简单的想法,但不知何故它不起作用。我需要这个重写规则才能工作:
RewriteRule ^([a-zA-Z0-9-]+)/?([a-zA-Z0-9-=]*)$ index.php?op=$1&$2 [L,NC]
我认为这几乎是不言自明的,但我希望规则将第一个正则表达式组作为 op 参数传递,第二个正则表达式组原封不动地传递给脚本。像这样:
http://example.org/view/?post_slug=awesome-apache-mods --> http://example.org/index.php?op=view&post_slug=awesome-apache-mods
这里的问题是第一部分工作得很好,这意味着op 参数设置正确但第二部分丢失了。我的意思是字面上输了。当我发出print_r($_GET) 时,只有op 参数。
Array
(
[op] => view
)
我想知道这里有什么问题?
【问题讨论】:
-
重写规则 ^([a-zA-Z0-9-]+)/?([a-zA-Z0-9-=]*)$ index.php?op=$1&post_slug=$2 [L,NC] 也许是那样的东西?你错过了第二个变量,因为它是发送的空值变量,它没有出现在 print_R
-
我在正则表达式中看不到任何匹配 post_slug 的(低于分数 _)?
-
@IesusSonesson 第二个变量并不总是
post_slug。关键是它可以是任何东西。
标签: php apache mod-rewrite url-rewriting