문제

저는 제 웹 사이트를 위해 URL을 깨끗하게 작업하고 있습니다. 인터넷에서 찾은 것이 서버가 작업 할 수있는 URL에 클린 URL을 다시 작성하는 것에 대해 꽤 많이 알아 봅니다.이렇게 같은 것 :

www.domain.com/profile/username --> www.domain.com/profile.php?u=username

RewriteEngine On
RewriteRule ^profile/(.*)$ /profile.php?u=$1 [L]
.

이제이 웹 사이트 내에서 CleanURL의 웹 사이트 내에 연결해야합니다.그러나 직관적으로 '더러운'URL에 링크하는 것이 더 똑똑하거나 더 좋습니다.따라서 위의 redirectule 및 redirect 규칙을 사용하여 '더티 URL'을 클린 URL에 눌러 사용자는 브라우저에서 항상 클린 URL 만 볼 수 있습니다.

www.domain.com/profile.php?u=username --> www.domain.com/profile/username
.

이 뭔가 좋은 일인 것입니다.그것은 웹 사이트에 의해 수행됩니까?그것에 대한 논쟁은 무엇입니까 / 그것에 유리합니까?

및 어떻게이처럼 리디렉션을합니까?다음과 같은 것과 같지 않은 것처럼 보입니다 :

RewriteRule ^profile\.php?u=(.*)$ /profile/$1 [R=301, L]
.

나는 꽤 새로운 것입니다. 그래서 나는 분명한 것을 요구할 것입니다 ...

도움이 되었습니까?

해결책

RewriteRule ^profile\.php?u=(.*)$ /profile/$1 [R=301, L]
.

RewriteRule에서 쿼리 문자열과 일치 할 수 없기 때문에 작동하지 않을 것입니다 (또한 플래그에 길잃은 공간이 있습니다).또한 다른 규칙에서 리디렉션 루프를 일으키기 때문에 실제 요청과 일치하고 있으며 URI가 아닌 URI가 아닙니다.

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profile\.php\?u=([^&\ ]+)
RewriteRule ^/?profile\.php$ /profile/%1 [R=301,L]
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top