.htaccess与目录有困难

时间:2013-07-17 10:18:35

标签: regex apache .htaccess mod-rewrite url-rewriting

我想关注网址:

nl/provincies/Limburg/plaats/#CITY# 例如 : nl/provincies/Limburg/plaats/Amsterdam

重写为section.php?sid=plaatsen$plaats=#CITY#

当然,使用这个并不困难:

^nl/provincies/plaatsen/(.*)$ section.php?sid=plaatsend&plaats=$1

但问题出现的时候我也想这样做:

nl/provincies/#STATE#

例如: nl/provincies/Limburg

重写为section.php?sid=plaatsen$province=#STATE#

现在问题来了,这不起作用。 它看到了provincies / Limburg / plaats / Echt

作为一个省,省:Limburg / plaats / Echt

我试图发挥创意并使用:

RewriteCond %{REQUEST_URI} !^nl/provincies/plaats/(.*)$
RewriteRule ^provincies/(.*)$ section.php?sid=plaatsen&province=$1

RewriteCond %{REQUEST_URI} ^nl/provincies/plaats/(.*)$
RewriteRule ^nl/provincies/plaatsen/(.*)$   section.php?sid=plaatsend&plaats=$1

任何想法/解决方案?谢谢你们!

1 个答案:

答案 0 :(得分:0)

^nl/provincies/plaatsen/(.*)$ section.php?sid=plaatsend&plaats=$1

...这永远不会与您提供的网址相匹配?

无论如何,你要找的是:

RewriteRule ^(.+)/provincies/([^/]+)$         section.php?sid=plaatsend&plaats=$2
RewriteRule ^(.+)/provincies/.+/plaats/(.+)$  section.php?sid=plaatsend&province=$2

或更通用:

RewriteRule ^(.+)/provincies/([^/]+)(/plaats/)?(.+)?$ section.php?sid=plaatsend&province=$2&plaats=$4&locale=$1

对于像这样的复杂重写,我会真诚地推荐doing it in PHP