2014-09-02 2 views
1

У меня есть два сайта wordpress NEW и OLD с постоянными ссылками. Веб-сайт OLD расположен в http://website.com/old, а NEW находится по адресу http://website.com.Wordpress перенаправить все, кроме моего IP

Я хочу перенаправить все, кроме моего IP, на OLD-сайт (http://website.com/old), используя .htaccess.

по умолчанию .htaccess находящейся в главном directorie (http://website.com) является:

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

Я изменил это на следующее (где xx.xxx.x.xxx мой IP):

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REMOTE_HOST} !^xx.xxx.x.xxx 
RewriteRule .* http://website.com/old [R=302,L] 
</IfModule> 

На данный момент я могу перенаправить все на OLD-сайт, кроме моего IP-адреса. Проблема заключается в том, когда я перейти на любую страницу на моем новом сайте, как это http://website.com/contacts Retuns:

Not Found 
The requested URL /contacts/ was not found on this server. 
Apache Server at website.com Port 80 

Любая идея? Благодаря

ответ

2

Вы должны сохранить основное правило Wordpress' после ваш IP-проверить

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

# if not my ip then redirect to old version 
RewriteCond %{REMOTE_HOST} !^xx\.xxx\.x\.xxx$ 
RewriteRule . old [R=302,L] 

# if we're here, it means it's me so display new version 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php [L] 
</IfModule> 
+1

идеальный! Благодаря ;) –

Смежные вопросы