2009-10-08 6 views
2

내가 현재 일하고 웹 사이트에 많은 URL이 고통스러운 재 작성을하고 있어요,하지만 난 작은 문제를 발견했습니다 :htaccess로 동일한 URL/

RewriteRule ^domains/transfer$ ./cart.php?gid=11 [L,NC] 

탐색과이 줄 경우 I/

http://my-site/domains/transfer 

그러나 뒤에 작동하지 않습니다 : 이동

http://my-site/domains/transfer/ 

내가 EIT를 취할 RewriteCode을 변경할 수있는 방법이 있나요 그녀의 주장과 같은 페이지로 이동하십시오. 같은 줄에 '/'를 두 번 포함하는 것은 낭비입니다.

도움이 될만한 의견이 있습니다.

RewriteRule ^domains/transfer/?$ ./cart.php?gid=11 [L,NC] 

마법은 여기에 있습니다 : :

건배

답변

3

변경이에 선 /?하고는 슬래시 (/가), 선택 사양 일이 경우, 앞의 문자 수 있습니다.

transfer 뒤에 오는 것을 원할 경우, 허용되는 일치의 끝을 표시하는 달러 기호 ($)를 제거하십시오.

+0

신난다. 완벽하게 작동합니다. 매우 감사합니다. – frodosghost

0

난 그냥 하나의 URL 형태, 또는 후행 슬래시없이 일을 할 수 있도록 당신을 추천하고, 부정 경우 리디렉션 것 :

# remove trailing slash 
RewriteRule (.*)/$ /$1 [L,R=301] 

# add trailing slash 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .*[^/]$ /$0/ [L,R=301] 
+0

다른 하나는 허용하지만 다른 허용하지 않는 이유가 있습니까? 프로그램 문제입니까, 아니면 그저 정확성 문제입니까? – frodosghost

+0

@frodosghost : 정확성 문제입니다. 모든 리소스에는 유효한 URL이 하나만 있어야합니다. – Gumbo

+0

@ 검보 :: 감사합니다. 구현해야한다. – frodosghost