Como alterar a página de índice para um endereço IP?

4

Eu instalei outro tema no meu site e preciso melhorá-lo. Como posso alterar o arquivo de índice apenas para o meu endereço IP?

Meu arquivo htaccess atual:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Eu preciso alterar o arquivo de índice para index.WP.php para o endereço IP 203.0.113.111 . É possível?

    
por Rasvet 31.12.2016 / 04:36

2 respostas

4

Você poderia apenas repetir a parte do controlador frontal e incluir uma condição para o seu endereço IP. Por exemplo:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

### ALTERNATIVE FRONT CONTROLLER FOR SPECIFIC IP ADDRESS
RewriteRule ^index\.WP\.php$ - [L]

# Special case for document root to override DirectoryIndex
RewriteCond %{REMOTE_ADDR} =203.0.113.111
RewriteRule ^$ /index.WP.php [L]

# Route all other requests for specific IP address
RewriteCond %{REMOTE_ADDR} =203.0.113.111
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.WP.php [L]

### DEFAULT FRONT CONTROLLER FOR ALL OTHER USERS
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Isso só encaminhará o usuário com o endereço IP 203.0.113.111 para index.WP.php . Todos os outros visitantes são passados para o front controller padrão. Isso ainda permite que qualquer usuário diretamente solicite index.WP.php se quiser (se souber que existe).

UPDATE: Note que eu mudei o padrão RewriteRule no primeiro bloco de regras controller de . to ^ - isso permite que ele corresponda à raiz do documento, ou seja. http://www.example.com/ , para que possa substituir o padrão DirectoryIndex .

UPDATE: Para o front controller "alternativo" (através do endereço IP específico), é necessário um caso especial para a raiz do documento para substituir o DirectoryIndex (ex. index.php ). (A atualização anterior não teria sido suficiente já que a raiz do documento é obviamente um diretório, então a condição anterior ( !-d ) ainda falha.)

RewriteRule (.*) http;//www.example.com/$1 [R=301,L]

Observe que você tem um ponto-e-vírgula errado ( ; ) após o esquema em seu redirecionamento canônico não www para www.

    
por 31.12.2016 / 12:32
0

Você pode colocar o código abaixo no seu arquivo index.php . E altere 203.0.113.111 para seu IP público / estático e altere o URL de localização. Isso resolverá sua preocupação

if($_SERVER['REMOTE_ADDR']=='203.0.113.111' ||  $_SERVER['HTTP_X_FORWARDED_FOR']=='203.0.113.111')
{
    header("Location: http://www.example.com/yourindex.php");
} else {
    header("Location: http://www.example.com/index.php");
}
    
por 31.12.2016 / 06:51