2012-03-21 5 views
1

모든 파일 및 폴더 (디렉토리)를 www.example.com/*에서 www.example.com/website/로 리디렉션하고 싶습니다. 현재의 .htaccess는 다음과 같습니다.htaccess 와일드 카드 리디렉션

RewriteEngine on 

# To set your custom php.ini, add the following line to this file: 
# suphp_configpath /home/yourusername/path/to/php.ini 

RewriteCond %{HTTP_HOST} ^example\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.example\.com$ 
RewriteRule ^/?$ "http\:\/\/www\.example\.com\/website\/" [R=301,L] 
Redirect 301 /* http://www.example.com/website/ 

그러나 작동하지 않습니다.

+0

1) (이중 검사) "리디렉션"은 실제 301 리디렉션을 의미합니다. 또는 단지 재 작성합니다 (예제에서는 301을 보여줍니다). 2) 리다이렉트하는 방법이 약간 불분명하기 때문에 (URL-> URL에서) "실제"예제가 필요하지 않습니다. (현재 예제에서 몇 가지 문제가 있습니다 :/* ->/website /') – LazyOne

+0

누군가 www.example.com/test.html로 이동하려고하면 실제로 www.example.com/website/test.html로 이동하기를 바랍니다. 누군가 www.example.com/documents/test.pdf로 이동하면 www.example.com/website/documents/test.pdf로 이동하게합니다. – Chris

+0

@LazyOne 내가 지금해야 할 일이 보이니? – Chris

답변

2
RewriteCond %{REQUEST_URI} !^/website/ 
RewriteRule ^.*$ http://www.example.com/website%{REQUEST_URI} [R=301,L] 

작은 노트 : 나는 테스트를 위해 302 코드를 사용하고 결과에 만족하는 경우 (필요한 경우 물론,) (301)로 변경하는 것이 좋습니다. 그 이유는 최신 브라우저가 301 리디렉션을 캐시하기 때문에 이미 작동 할 수 있지만 여전히 캐시 된 결과가 표시 될 수 있습니다.

+2

완전한 리디렉션을 위해서는 항상 QSA (Query String Append) '... [R = 301, QSA, L]'을 추가해야합니다. –