나는 이것을 가지고있다 httpd.conf
:
<VirtualHost xx.xxx.xx.xxx>
Options All +ExecCGI
ServerAdmin [email protected]
DocumentRoot /var/www/html/domain.com
ServerName dl.domain.org
DirectoryIndex dlindex1.html
</VirtualHost>
DirectoryIndex
...잘 작동합니다( "dl.domain.org" 하위 도메인 으로 필요합니다 ).하지만DirectoryIndex
이제 IP 주소를 기준으로 변경 해야 합니다 .htaccess
. 이것이 가능합니까?
StackOverflow 게시물에 따르면 DirectoryIndex
조건부로 설정할 수는 없지만 그 반대가 됩니다.가지다를 사용하세요 RewriteRule
. 그게 사실이라면 괜찮습니다. 하지만 무엇 RewriteCond
과 RewriteRule
? 나는 다음을 포함하여 많은 것을 시도했습니다(실제 IP는 우리 개발자 2명의 IP입니다).
RewriteCond %{REMOTE_ADDR} ^111\.222\.333\.444$ [OR]
RewriteCond %{REMOTE_ADDR} ^555\.666\.777\.888$
RewriteCond %{SERVER_NAME} ^dl.domain.org
RewriteRule ^(.*)/$ $1/dlindex2.html
..또는 심지어 (절대적인 테스트로서):
RewriteCond %{REMOTE_ADDR} ^555\.666\.777\.888$
RewriteRule (.*)/dlindex1.html$ $1/dlindex2.html
하지만 내가 무엇을 시도하든 개발자 IP가 호출할 때 해당 하위 도메인의 기본 페이지로 제공되는 대신 DirectoryIndex dlindex1.html
에 그대로 제공되는 것 같습니다 .httpd.conf
dlindex2.html
누구든지 내가 원하는 것을 달성하기 위해 내가 할 수 있는 일을 지적할 수 있습니까? 즉, ...실제로 또는 실제로 DirectoryIndex
IP 주소를 기반으로 기본적으로 변경됩니까 .htaccess
?
답변1
IP 주소 12.34.56.78을 /var/www/client1/*로 이동하고 IP 주소 87.65.43.21을 /var/www/client2/*로 이동한다고 가정합니다.
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^12\.34\.56\.78$
RewriteRule (.*) /client1/$1
RewriteCond %{REMOTE_ADDR} ^87\.65\.43\.21$
RewriteRule (.*) /client2/$1
특수 페이지를 제공해야 하는 각 IP에 대해 "RewriteCond" 및 "RewriteRule" 세트를 만듭니다.
운영 분석:
- 클라이언트 87.65.43.21 연결
- 규칙은 클라이언트가 12.34.56.78인지 확인하고, 그렇지 않으면 그렇지 않습니다.
- 그런 다음 서버는 두 번째 조건을 입력합니다.
- 클라이언트가 87.65.43.21인지 확인하십시오. 예
- 이제 서버는 통과된 테스트 조건의 일부로 RewriteRule을 실행하고 /client2/(file_requested) 페이지를 제공합니다.
OP는 그의 질문을 명확히 했습니다. 그는 별도의 폴더가 필요하지 않지만 다른 인덱스 페이지를 제공해야 합니다. 다음은 작업을 수행하는 .htaccess 예제입니다.
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^12\.34\.56\.78$
RewriteCond %{REQUEST_URI} index\.html$
RewriteRule .* /index-page-client1.html
RewriteCond %{REMOTE_ADDR} ^12\.34\.56\.78$
RewriteCond %{REQUEST_URI} index\.html$
RewriteRule .* /index-page-client2.html
위의 규칙은 요청된 파일이 "index.html"인지 추가로 확인합니다. "index.html"에 대한 요청만 리디렉션한다고 가정합니다.