2014-06-19 35 views
1

我想重定向一個網址,該網址在最後一個斜槓後有4-5個字符,並且在其末尾有一個+。 (注:+符號長度不計數).htaccess重定向網址以一個符號結尾

我能夠讓4-5個字符條件下工作:

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /(index\.php)?\?id=([0-9a-zA-Z]{4,5}+)([^\ ]*) 
RewriteRule^/%3?%4 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([0-9a-zA-Z]{4,5}+)/?$ someFile.php?id=$1 [L,QSA] 

我不能使它發揮作用爲+符號雖然我嘗試了條件([0-9a-zA-Z\+]{4,5}+)但不work..also我想,如果沒有+末符號條件([0-9a-zA-Z\+]{4,5}+)仍然會工作..

Ë xample:

來源:

http://example.com/1234+ 

要:

http://example.com/someFile.php?id=1234 

注:重定向僅如果在最後一個+

+0

這些URL的例子是什麼? – anubhava

+0

@anubhava請參閱編輯.. –

+0

@anubhava請參閱答案的評論,因爲某些原因,我可以在答案中使用'@'包含您的用戶名.. –

回答

1

你需要轉義+,因爲它是一個特殊的正則表達式符號。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([0-9a-zA-Z]{4,5})\+?/?$ someFile.php?id=$1 [L,QSA] 
+0

感謝隊友不知道指定'+'符號後的條件將工作,謝謝它的工作。 :) –

+0

不客氣,很高興它解決了。 – anubhava

+0

爲什麼它不適用於'*'? –

相關問題