我有两个wordpress网站新和 OLD 与永久链接。 OLD网站位于http://website.com/old
,NEW位于http://website.com
。
我想使用.htaccess将所有exept我的IP重定向到OLD网站(http://website.com/old
)。
位于主要导演(http://website.com
)的默认.htaccess是:
<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
它返回:
Not Found
The requested URL /contacts/ was not found on this server.
Apache Server at website.com Port 80
有什么想法吗?感谢
答案 0 :(得分:3)
你必须保持Wordpress&#39;主要规则在您的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>