2013-07-15 3 views
1

.htaccess 301 리디렉션을 사용하여 www가 아닌 ​​www로 리디렉션하도록 설정했는데 잘 작동하지만 예쁜 URL은 페이지가 www가 아닌 ​​URL로 액세스 될 때 손실됩니다. ..htaccess - www가 아닌 ​​URL을 www가 아닌 ​​URL로 리디렉션 한 후 잃어버린 예쁜 URL

나는 이렇게했습니다.

Options +FollowSymlinks 
RewriteEngine on 
Rewritecond %{HTTP_HOST} ^site.com [NC] 
Rewriterule ^(.*)$ http://www.site.com/$1 [R=301,NC] 
RewriteRule ^([^/]*)/(.*\.html) process/?category=$1&link=$2 [L] 

그것은 제대로 주소 표시 줄에 꽤 URL www.site.com/software/page.html을 잃지 않고 URL을

http://www.site.com/software/page.html 

http://www.site.com/process/index.php?category=software&link=page.html 

로 리디렉션합니다.

그것은 리디렉션 URL을

http://site.com/software/page.html 

http://www.site.com/process/index.php?category=software&link=page.html 

제대로 지금까지 꽤 URL이 손실되고 주소 표시 줄에 주소가

http://www.site.com/process/index.php?category=software&link=page.html 

대신

http://site.com/software/page.html 
입니다

www가없이 페이지에 액세스 할 때 예쁜 URL을 유지하는 방법.

이 방법을 참조하십시오.

덕분에

답변

2

나는 문제는 첫 번째 규칙에 L 플래그가 누락 생각합니다. 다음 코드를 사용해보십시오.

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

Rewritecond %{HTTP_HOST} ^site\.com$ [NC] 
Rewriterule ^(.*)$ http://www.site.com/$1 [R=301,NC,L] 

RewriteRule ^([^/]+)/([^.]+\.html)$ /process/?category=$1&link=$2 [QSA,L,NC] 
+0

작동하지 않았습니다. –

+0

이것을 테스트하기 위해 사용하신 URL은 무엇입니까? 그리고 귀하의 질문에 완전한 .htaccess를 버리십시오. – anubhava

+0

'http://www.site.com/software/page.html'에 대해 http : // site.com/software/page.html 이외의 URL을 사용했습니다. –

관련 문제