2009-07-17 3 views
0

을 망치는 여기에 내가 가진 리디렉션는 다음과 같습니다mod_rewrite를 리디렉션 경로

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1 

문제는 내가 http://www.example.com/apple를 입력하면 그 페이지 내 링크에 관해서는 괜찮아요이다.

그러나 내가 http://www.example.com/apple/ (마지막 슬래시에주의)을 사용하면 링크가 망가져 버립니다.

.htaccess를 쓰려면 어떻게해야합니까? 마지막 슬래시는 링크에 포함되지 않고 링크가 엉망이되지 않도록하려면 어떻게해야합니까?

업데이트 :

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^(.+)/$ 
RewriteRule ^(.+)/$ /$1 [R=301,L] 

답변

2

첫 번째 다음에 후행 슬래시를 제거 할 수 있습니다 : 내가 사용하는 결국 정상적으로

remove-those-trailing-slashes-from-your-uris

그런 과정을 그 시점 이후.

+0

끔찍한 답변! 정말 고마워!!! –

0

외부 리소스를 참조 할 때는 절대 URL 경로 또는 절대 URL을 사용해야합니다.

상대 URL은 기본 URL에서 확인되므로 달리 선언하지 않으면 현재 문서의 URL입니다 (BASE HTML element 참조). 따라서 상대 URL 경로 baz/quux을 사용하여 /baz/quux을 참조하는 경우 /foo에서 사용하면 /baz/quux으로 올바르게 해석되지만 /foo/bar에서 사용하면 /foo/baz/quux으로 확인됩니다. 그러나 절대 URL 경로 /baz/quux은 항상 /baz/quux으로 해석됩니다.

관련 문제