我想重定向一个url,它在上次斜杠后有4-5个字符,并且在它的末尾也有一个+。(注意:-- +符号长度不计)
我能够使它工作在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}+)不能使它工作,但条件([0-9a-zA-Z\+]{4,5}+)仍然可以工作,如果在最后没有+符号。
示例:
发自:
http://example.com/1234+至:
http://example.com/someFile.php?id=1234注意:只有在最后有一个+时,才会重定向。
发布于 2014-06-19 11:28:19
您需要转义+,因为它是一个特殊的正则符号。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z]{4,5})\+?/?$ someFile.php?id=$1 [L,QSA]https://stackoverflow.com/questions/24305311
复制相似问题