2013-12-11 3 views
1

내 모든 웹 사이트 페이지의 URL은 처음부터 www로 리디렉션됩니다. 따라서 누군가 http // xyz.com을 입력하면 자동으로 http // www.xyz.com이됩니다. 이것은 나에게 좋다. 그러나 주요한 문제는 사람이 123.234.111.121을 입력하면 다시 처음에 www를 쓰게되는 것인데, 이것은 잘못된 것입니다. 어떻게 수정해야합니까? 이와 관련하여 도움이된다면 큰 도움이됩니다.htaccess는 모두 IP를 제외한 모든 IP로 리디렉션합니다.

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

심지어이 함께 노력 ...

RewriteEngine On 
RewriteBase/
RewriteCond %{REMOTE_HOST} !^50\.56\.246\.162 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

는하지만, 여전히 당신은이 규칙을 사용할 수 있습니다

답변

0

작동하지 않습니다 다음과 같이

내 현재 설정은 다음과 같습니다

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} !^[0-9]+\. 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 

이 공동 웹 사이트에 액세스하기 위해 IP 주소를 제공하면 RewriteCond %{HTTP_HOST} !^[0-9]+\.이이 규칙을 건너 뜁니다.

+0

안녕하세요! Anubhava. 회신 해 주셔서 감사합니다. 그러나 예상대로 작동하지 않습니다. 이 50.56.246.162/svn/7sis_repo를보십시오. 다시 www가 IP ​​ – Jay

+0

전에 추가되는 것 같습니다. 일어날 수 없습니다. 301 캐싱 문제를 피하려면 새 브라우저에서이 방법을 사용해보십시오. – anubhava

+0

당신의 논리는 정확하지만 새로운 브라우저에서 시도했습니다. 귀하의 만족을 위해 모든 캐시를 지 웠습니다. 아직도 이런 일이 발생했다 : ( – Jay

0

anubhava가 제안한 위의 규칙은 나를 위해 작동하지 않습니다. 나는이 문제에 대해 주위를 둘러보고이 대답을 보냈다.

RewriteCond %{HTTP_HOST} . 
    RewriteCond %{HTTP_HOST} !^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteRule^http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
관련 문제