2012-08-12 555 views
0

想知道這是否可能。htaccess&RewriteRule

我使用htaccess的重寫我的網頁,和我使用的是以下行:

RewriteRule ^([a-zA-Z0-9^-]+)$ page.php?page=$1 

把它改寫成乾淨的鏈接。 page.php然後適當地調用數據。 我想知道如果它可能,如果變量是3個字符長,它會重定向到另一個頁面。

RewriteRule ^([a-zA-Z0-9^-]+{3})$ small.php?char=$1 

與上面類似的東西?那可能嗎?出於舉例說明的目的,我堅持使用{3}。 例如,如果我的地址是www.example.com/abc,它將重定向到small.php?char = abc,並且如果它再次重定向到page.php地址。

由於提前,

回答

0

可以使用RewriteCond創建if語句,如果匹配將用戶重定向到指定的鏈接。該定義的RewriteCond規則條件,可以有不止一個,如果所有的人都匹配後續規則被應用於:

RewriteCond %{REQUEST_URI} /^([a-zA-Z0-9^-]+{3})$ 
RewriteRule ^([a-zA-Z0-9^-]+{3})$ small.php?char=$1 [NC,L] 

RewriteRule ^([a-zA-Z0-9^-]+)$ page.php?page=$1 [NC,L] 
0

我會嘗試只是這個沒有+,把small.php規則之前和添加L-標誌(最後),因此,如果在較小的版本相匹配,將退出:

RewriteRule ^([a-zA-Z0-9^-]{3})$ small.php?char=$1 [L] 
RewriteRule ^([a-zA-Z0-9^-]+)$ page.php?page=$1  [L] 

+代表一個或多個字符。 {3}代表正好3個字符。