1

与重写规则作斗争,认为它可能只是语法不正确。

我有一个这样的网址:

http://mydomain.org/foo-bar/from2012-10-29/to2012-11-02/page2/

.htaccess 位于 foo-bar/

我的规则:

# if uri contains dates and page:
RewriteCond %{REQUEST_URI} "from.*to.*page" [NC]
RewriteRule ^from((19|20|21)\d\d-(0[0-9]|1[012])-(0[1-9]|[12][0-9]|3[01]))/to((19|20|21)\d\d-(0[0-9]|1[012])-(0[1-9]|[12][0-9]|3[01]))/page([0-9]+)/?$ index.php?from=$1&to=$2&p=$3 [NC,L]

正如您(希望)看到的那样,我正在尝试翻译:

http://mydomain.org/foo-bar/from2012-10-29/to2012-11-02/page2/

进入这个:

http://mydomain.org/foo-bar/index.php?$from=2012-10-29&$to=2012-11-02&$p=2

但是我得到的变量值并不像我预期的那样。我得到以下值

p= 10
from= 2012-10-29
to= 20

希望有人可以为我指出显而易见的事情。

提前致谢。

4

1 回答 1

1

简化您的正则表达式。

试试这个代码:

RewriteRule ^from([^/]+)/to([^/]+)/page([0-9]+)/?$ index.php?from=$1&to=$2&p=$3 [NC,L,QSA]
于 2013-10-28T15:03:49.727 回答