브라우저의 주소 표시 줄에 이전 도메인이 표시되도록 유지하면서 이전 도메인을 새 하위 도메인으로 리디렉션하려고합니다.브라우저의 주소 표시 줄에 이전 도메인 이름이 표시되도록 유지하면서 이전 도메인 이름을 새 도메인 이름으로 리디렉션하는 방법은 무엇입니까?
나는 그것을하기 위해 htaccess를 사용했으며 주소 표시 줄에 이전 도메인을 표시하는 것을 제외하고는 모든 것이 작동합니다.
또 다른 중요한 점은 URL 및 GET 변수의 폴더를 유지 관리해야한다는 것입니다.
이 작업을 수행하기 위해 i- 프레임을 사용하고 싶지 않기 때문에 htaccess를 통해이 모든 작업을 우아하게 처리하려고합니다.
다음은 지금까지 사용해온 코드입니다. 브라우저의 주소 표시 줄에 이전 도메인 이름을 유지하는 것을 제외하고는 작동합니다.
제 질문은 리디렉션 후에 브라우저의 주소 표시 줄에 이전 도메인 이름을 어떻게 표시합니까? 나는 이것이 어딘가에서 '프록시 내용'이라고 불리는 것에 의해 수행 될 수 있다고 읽었지 만 틀릴 수도 있습니다. 나도 그게 어떻게 작동하는지 알지 못한다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^domain.com [nc]
RewriteRule ^(.*)$ http://subdomain.domain.com/$1 [r=301,nc,L]
RewriteCond %{HTTP_HOST} ^www.domain.com [nc]
RewriteRule ^(.*)$ http://subdomain.domain.com/$1 [r=301,nc,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
업데이트 : 나는 한 단계 더 가지고 있도록
좋아요. 다음 코드는 웹 사이트 파일을 루트의 하위 디렉토리에 넣을 때 작동합니다.
그러나 여전히 문제가 있습니다. example.com을 example.com/subdirectory로 리디렉션하지만 example.com/index.php는 example.com/subdirectory/index.php로 리디렉션하지 않습니다.
나는 index.php를 포함하여 모든 파일에서 작동 할 수 있도록하는 방법을 알아 내려고하고 있습니다.
#Redirect a domain to a subdirectory, while displaying only the domain and not the subdirectory in the browser address bar.
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^example.com [nc]
RewriteRule ^$ /subdirectory/ [nc,L,QSA]
RewriteCond %{HTTP_HOST} ^www.example.com [nc]
RewriteRule ^$ /subdirectory/ [nc,L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
한 번 더 메모. 내 웹 사이트의 모든 요소는 상대 경로를 사용하기 때문에 다시 쓰기 때문에 웹 사이트의 HTML에있는 상대 경로가 파일의 잘못된 루트 디렉토리를보고 있었기 때문에 작업을 수행하기 위해 HTML 루트를 하위 디렉토리로 설정해야했습니다 . 즉, 하위 디렉토리 대신 실제 루트 디렉토리에 연결했습니다. 나는 다음과 같이 하위 디렉토리에 HTML 루트/기본 설정 :
<head>
<base href="http://<?php echo $_SERVER['HTTP_HOST']; ?>/subdirectory/" />
</head>
업데이트 : 나는 한 단계 더있어 너무
좋아요. 다음 코드는 웹 사이트 파일을 루트의 하위 디렉토리에 넣을 때 작동합니다.
그러나 여전히 문제가 있습니다. example.com을 example.com/subdirectory로 리디렉션하지만 example.com/index.php는 example.com/subdirectory/index.php로 리디렉션하지 않습니다.
나는 index.php를 포함하여 모든 파일에서 작동 할 수 있도록하는 방법을 알아 내려고하고 있습니다.
#Redirect a domain to a subdirectory, while displaying only the domain and not the subdirectory in the browser address bar.
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} ^example.com [nc]
RewriteRule ^$ /subdirectory/ [nc,L,QSA]
RewriteCond %{HTTP_HOST} ^www.example.com [nc]
RewriteRule ^$ /subdirectory/ [nc,L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
한 번 더 메모. 내 웹 사이트의 모든 요소는 상대 경로를 사용하기 때문에 다시 쓰기 때문에 웹 사이트의 HTML에있는 상대 경로가 파일의 잘못된 루트 디렉토리를보고 있었기 때문에 작업을 수행하기 위해 HTML 루트를 하위 디렉토리로 설정해야했습니다 . 즉, 하위 디렉토리 대신 실제 루트 디렉토리에 연결했습니다.재 작성 규칙의 도메인이 일치하지 않는 경우, 아파치 주소 표시 줄에 다시 것
<head>
<base href="http://<?php echo $_SERVER['HTTP_HOST']; ?>/subdirectory/" />
</head>
콘텐츠가 이전 도메인과 동일한 하위 도메인에 있습니까? –
은 동일한 서버의 도메인 및 하위 도메인입니까? – miah
@misplacedme : 아니요, 하위 도메인의 콘텐츠가 다릅니다. –