2014-06-19 3 views
1

마지막 슬래시 뒤에 4-5 자의 URL을 리디렉션하고 마지막에 +이 있습니다. 은 (참고 :+ 심볼의 길이는 계산하지 않습니다) : 나는 그것이 작동되도록 할 수 아니에요.htaccess 심볼로 끝나는 URL 리디렉션

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] 

나는 4-5 문자 조건에 대해 작동하도록 할 수 있었다 .. 내가 조건 ([0-9a-zA-Z\+]{4,5}+)을 시도하지만 난 마지막에 더 + 기호가없는 경우 조건 ([0-9a-zA-Z\+]{4,5}+) 여전히 작동 생각 work..also하지 않습니다 불구하고 + 기호

E 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

왜'*'에서 작동하지 않습니까? –