2010-01-16 242 views
0

我试图使用URL重定向我的网页:国防部重写问题

RewriteRule ^(.*)/content/(.*)/?(.*)\.html$ browse.php?s=$1&c=$2&l=$3 [NC,L] 

对于2个参数,它工作正常,但是当我通过3个参数,它把在2和第三位。

正确的输出是如下(2)参数:

Array ([s] => wallpapers [c] => Global_Celebrities [l] => Nicole1); 

合并弄乱输出是在这里(3)的参数:

Array ([s] => wallpapers [c] => Global_Celebrities/Kate1 [l] =>); 

预先感谢。

+0

如果您接受最能回答您的问题的答案,那将会很好。 – Gumbo 2010-01-16 14:49:43

回答

1

您需要使用更具体的模式。尝试[^/]+代替.*

RewriteRule ^([^/]+)/content/([^/]+)\.html$ browse.php?s=$1&c=$2 [NC,L] 
RewriteRule ^([^/]+)/content/([^/]+)/([^/]+)\.html$ browse.php?s=$1&c=$2&l=$3 [NC,L] 
+0

感谢您的及时回复,它工作正常.. – user252165 2010-01-16 14:21:58

+0

谢谢guyz你是生命救主(K);) – user252165 2010-01-16 14:28:28

1

最简单的办法就是去与2个规则:

RewriteRule ^(.*)/content/(\w*)\.html$ browse.php?s=$1&c=$2 [NC,L]<br/> 
RewriteRule ^(.*)/content/(\w*)/(\w*)\.html$ browse.php?s=$1&c=$2&l=$3 [NC,L] 

注意,我使用 “\ W” 代替,使 “ ”“。”将无法吃“/”。 它可能适用。 \ w也是更安全。