기존 도메인 이름 (예 : olddomain.com)에서 새 도메인 이름 (예 : newdomain.com)으로 마이그레이션 된 웹 사이트가 있습니다.
SEO상의 이유로 모든 웹 사이트 트래픽을 기본 새 도메인 이름 (예 : www.newdomain.com)으로 다시 작성해야합니다. 불행히도 여러 OR 유형 다시 쓰기 조건을 추가하는 방법을 모르겠습니다. 모든 조건, 아래 샘플 코드로 AND 조건을 얻는 것 같습니다.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName newdomain.com
ServerAlias www.newdomain.com
ServerAlias olddomain.com
ServerAlias www.olddomain.com
DocumentRoot /var/www/newdomain.com/www/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
RewriteEngine on
RewriteCond %{HTTP_HOST} ^olddomain.com [NC]
RewriteCond %{HTTP_HOST} ^www.olddomain.com [NC]
RewriteCond %{HTTP_HOST} ^newdomain.com [NC]
RewriteRule ^/(.*)$ http://www.newdomain.com/$1 [R=301,NC]
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
누군가 나에게 약간의 도움을 줄 수 있습니까? 도움을 주시면 감사하겠습니다.
답변
당신은 당신이 이미 솔루션을 작업 발견 한 사실에도 불구하고, 나는 아직도이를 게시 할 예정입니다 지금까지 최적의 것을.
솔루션 # 1 : 교체 [NC]
에 의해 [NC,OR]
원래의 코드의 처음 2 개한다 RewriteCond 라인이다. 기본적으로 하나의 RewriteCond가 logical로 다른 RewriteCond에 연결되었습니다 AND
. 이것은 아파치에게 OR
로직 을 사용하도록 지시합니다 :
RewriteCond %{HTTP_HOST} ^olddomain.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.olddomain.com [NC,OR]
RewriteCond %{HTTP_HOST} ^newdomain.com [NC]
RewriteRule ^/(.*)$ http://www.newdomain.com/$1 [R=301,L,NC]
해결 방법 # 2 : 총 4 개의 도메인 이름 만 있으므로 올바른 방법을 제외한 모든 도메인에서 리디렉션하는 반대 접근 방식을 사용하는 것이 훨씬 쉽습니다.
RewriteCond %{HTTP_HOST} !^www.newdomain.com [NC]
RewriteRule ^/(.*)$ http://www.newdomain.com/$1 [R=301,L,NC]
답변
이 인용문을 찾았습니다.
rewriteCond는 그 뒤에 오는 단일 rewriteRule에만 적용됩니다.
여기 : http://www.webmasterworld.com/apache/3350200.htm
나에게 맞는 해결책은 다음과 같습니다.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^olddomain.com [NC]
RewriteRule ^/(.*)$ http://www.newdomain.com/$1 [R=301,NC]
RewriteCond %{HTTP_HOST} ^www.olddomain.com [NC]
RewriteRule ^/(.*)$ http://www.newdomain.com/$1 [R=301,NC]
RewriteCond %{HTTP_HOST} ^newdomain.com [NC]
RewriteRule ^/(.*)$ http://www.newdomain.com/$1 [R=301,NC]