Php 我如何解决这个访问问题
我有以下动态urlPhp 我如何解决这个访问问题,php,.htaccess,Php,.htaccess,我有以下动态url http://www.mydomain.com/v/dynamicvaluehere 我的htaccess中有以下内容 RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L] RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L] 现在它工作得很好,我想进一步创造 http://www.mydomain.com/v/dynamicval
http://www.mydomain.com/v/dynamicvaluehere
我的htaccess中有以下内容
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L]
RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L]
现在它工作得很好,我想进一步创造
http://www.mydomain.com/v/dynamicvaluehere/Page-dyanamicnumberhere.html
我的htaccess中有以下内容
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L]
RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L]
但它不工作,请帮助。。。
还要注意,第二个指定的dynamicvalue元素与上面提到的相同,但只进一步包括dynamicnumber…我认为问题可能是您使用了通配符。如果.htaccess如下所示:
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L]
RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L]
RewriteRule ^v/([A-Za-z0-9].*)$ script.php?name=$1 [NC,L]
RewriteRule ^v/([A-Za-z0-9].*)/Page-([0-9].*)\.html$ script.php?name=$1&number=$2 [NC,L]
然后,任何模式都不会到达第二个参数,因为(.*)/Page-(.*)\.html
实际上将位于(.*)
第一个参数之下
您可以将通配符细化为以下内容:
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L]
RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L]
RewriteRule ^v/([A-Za-z0-9].*)$ script.php?name=$1 [NC,L]
RewriteRule ^v/([A-Za-z0-9].*)/Page-([0-9].*)\.html$ script.php?name=$1&number=$2 [NC,L]
或者甚至可以尝试将陈述的顺序切换为:
RewriteRule ^v/(.*)/Page-(.*)\.html$ script.php?name=$1&number=$2 [NC,L]
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L]
你的第二条规则永远也达不到,因为第一条规则的贪婪本性。您可以将其置于第一条规则之上,也可以使第一条规则更加具体 请尝试以下操作:
RewriteRule ^v/(.+)/Page-(.+)\.html$ script.php?name=$1&number=$2 [NC,L]
RewriteRule ^v/(.*)$ script.php?name=$1 [NC,L]