2013-02-10 50 views
0

我想通過.htaccess重寫網址,我想要的是隻有在URL類似「www.mysite.com/basedir/directory/ file.htm「。 我不想要「www.mysite.com/basedir/file.htm」「www.mysite.com/basedir/directory/directory/file.htm」,我想要確切描述的結構。目前我正在試圖做到這一點:RewriteRule - 只有兩個目錄和一個文件

RewriteRule ^(basedir)/([^/\.]+)/(.*)\.(htm)$ /template.php?&page=$3 [L] 

但它不起作用。它接受basedir之後的任意數量的目錄。
感謝您的幫助

回答

0

你的第二個比賽區域都需要有一個角色像排斥第一:

RewriteRule ^(basedir)/([^/\.]+)/([^/]*)\.(htm)$ /template.php?&page=$3 [L] 

這樣,你不允許額外的斜線相匹配,只有兩個明確的斜線前面在模式中。

此外,您究竟想要與$3匹配?你只需要在你需要匹配的東西周圍使用括號。如果$3應該匹配file.htm,那麼你可以代替寫:

RewriteRule ^basedir/[^/\.]+/([^/]*\.htm)$ /template.php?&page=$1 [L] 

,或者如果它應該只是匹配「文件」,然後:

RewriteRule ^basedir/[^/\.]+/([^/]*)\.htm$ /template.php?&page=$1 [L] 
+0

感謝。我將刪除我不需要的括號。 – ali 2013-02-10 18:33:30

相關問題