2011-03-07 59 views
0
RewriteEngine On 
RewriteBase/
RewriteRule ^sample-([a-z][a-z]).php /state.php?m=$1 
RewriteRule ^sample-([a-z^-]+).php /city.php?m=$1 

我在我的htaccess文件中的兩個正則表達式,它尋找的狀態(雙字母字符,例如「樣本tx.php」),市(支付的任何款項字母字符和破折號,例如「sample-new-bedford.php」)。如何從htaccess的正則表達式匹配省略

這些表達式工作帶來極大的權利,但我需要兩樣東西幫助:

  1. 對於狀態表現,我怎麼會忽略「AZ」和「TX」,所以當有人去「樣本-az.php「或」sample-tx.php「,它們不會被重定向?

  2. 與#1相同的問題,除了這次是城市。如何省略「houston」和「new bedford」,所以當有人去「sample-houston.php」或「sample-new-bedford.php」時,他們不會重定向?

回答

0

您可以使用(?!...)negative assertions

RewriteRule ^sample-(?!az|tx)([a-z][a-z]).php /state.php?m=$1 

將它們立即寫在字符匹配組的前面。這對城市來說也是一樣的。

+0

這是完美的!謝謝! – elbrian87 2011-03-07 20:22:08