
지난 3년 동안 나는 내 Wordpress 웹사이트의 사본을 2개나 갖고 있었습니다. 하나는 www.domain.com에 있고 다른 하나는 dev.domain.com에 있습니다. 오늘은 세 번째를 추가하려고 합니다. 충분히 간단한 것 같습니다! 모든 간단한 설정 단계를 수행하고 사이트를 활성화하자마자 301이 www 사이트로 연결됩니다. 301을 유발하는 문제를 해결하는 방법을 모르겠습니다. Apache 또는 Wordpress에 있습니까? 내가 아는 것은 개발 사이트의 모든 구성을 복사하고 해당되는 경우 하위 도메인과 디렉터리 이름을 변경한다는 것뿐입니다. 그 정도면 충분할 것 같습니다. 내 단계:
- 브라우저에서 dev2.domain.com을 열고 기본 Apache2 페이지를 확인하세요.
- /dev.domain.com -> /dev2.domain.com의 소스 폴더 복사
- /etc/apache2/sites-available/dev.domain.com.conf -> dev2.domain.com.conf 복사
- 실행: sudo a2ensite dev2.domain.com.conf
- 실행: sudo service apache2 reload (및/또는 다시 시작 - 둘 다 시도했습니다)
- dev2.domain.com을 열고 301이 www.domain.com으로 리디렉션됩니다.
어쨌든 301의 원인을 확실히 알아낼 수 있습니까? 가장 혼란스러운 점은 하위 도메인에서 실행 중인 기존 사이트를 복사하여 하위 도메인에 이 새 사이트를 구축하고 있다는 것입니다. 나는 둘 사이의 차이점이 무엇인지 알 수 없습니다.
필수 구성 정보...
3개 사이트(www, dev, dev2) 모두의 루트 디렉터리에 있는 동일한 .htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Options +Indexes
IndexOptions -FancyIndexing
dev.domain.com에 대해 사이트에서 사용 가능한 구성...
<VirtualHost *:80>
ServerName dev.domain.com
ServerAdmin [email protected]
DocumentRoot /srv/dev.domain.com
<Directory />
Options All
AllowOverride All
Require all granted
</Directory>
ErrorLog /srv/dev.domain.com/logs/error.log
CustomLog /srv/dev.domain.com/logs/access.log combined
</VirtualHost>
dev2.domain.com에 대해 사이트에서 사용 가능한 구성...
<VirtualHost *:80>
ServerName dev2.domain.com
ServerAdmin [email protected]
DocumentRoot /srv/dev2.domain.com
<Directory />
Options All
AllowOverride All
Require all granted
</Directory>
ErrorLog /srv/dev2.domain.com/logs/error.log
CustomLog /srv/dev2.domain.com/logs/access.log combined
</VirtualHost>
AWS Route53의 DNS 구성...
domain.com A 12.34.567.89
dev.domain.com A 12.34.567.89
dev2.domain.com A 12.34.567.89
www.domain.com CNAME domain.com
제가 가장 고집하는 것은 다음 2가지입니다.
dev와 dev2 사이의 아파치 구성~인 것 같다적용 가능한 경우 "dev" -> "dev2"를 변경하는 것 외에는 동일해야 합니다.
Apache에서 사이트가 비활성화되면 리디렉션되지 않습니다. 리디렉션은 사이트가 활성화된 후에만 발생합니다. 이것이 Wordpress라는 뜻인가요?
답변1
귀하의 Apache 설정은 모두 정확합니다. 문제는 도메인이 Wordpress 데이터베이스에 저장되었기 때문에 발생했을 가능성이 높습니다. 기본적으로 Wordpress는 홈페이지와 사이트 URL 모두에 대해 wp_options 테이블에 기본 URL을 저장합니다. 또한 wp_posts 테이블의 모든 개별 게시물/페이지 GUID에 정규화된 도메인을 저장합니다.
도메인 찾기 및 바꾸기 옵션:
- 가장 빠른 방법: mysql 데이터베이스를 내보내고, 텍스트 편집기에서 mysql 데이터베이스 덤프를 열고 전역 찾기(domain.com 또는 dev.domain.com의 경우)를 수행하고 (dev2.domain.com)로 바꾸고 다시 가져옵니다.
- SQL 쿼리를 사용하여 이전 도메인의 모든 인스턴스를 찾아 새 하위 도메인으로 교체합니다.
Wordpress 사이트를 한 도메인에서 다른 도메인으로 마이그레이션하는 방법에 대한 자세한 내용은 다음 페이지의 "도메인 이름 및 URL 변경" 섹션을 참조하세요.WordPress Codex 페이지 이동