我正在迁移大型网站(每个网页都有重大更改),并且希望在每个网页完成后,将测试用户组自动从当前网站重定向到新网站。
什么是
www.mysite.com/admin/somefile.php
将成为
admin.mysite.com/somefile.php
当每个页面迁移到新站点时,我希望来自特定IP地址的用户自动重定向到它。这看起来像是RewriteCond的'-U'(现有URL)标志的情况。 mod_rewrite语句(对于www.mysite.com)将是
RewriteEngine On
RewriteCond %{REMOTE_ADDR} 123\.123\.123\.123 # for test users only
RewriteCond http://admin.mysite.com/$1 -U # if new page exists
RewriteRule /admin/(.*) http://admin.mysite.com/$1 [R=302,L] # then redirect
然而,这似乎不起作用 - 也许是因为在定义之前引用了$ 1参数?
有人可以建议如何实现这一目标吗?
谢谢,克里斯
答案 0 :(得分:1)
谢谢,LazyOne - 你给了我信心去追求它(如果你做出答案我会接受它)。
我认为问题只是在使用/ admin而不是^ admin;我的最终mod_rewrite语句是:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} 123\.123\.123\.123 # for test users only
RewriteCond http://admin.mysite.com/$1 -U # if new page exists
RewriteRule ^admin/(.*) http://admin.mysite.com/$1 [R=302,L] # then redirect
...如果它存在,它似乎正确地从新网站提供页面,否则从旧网站提供页面。
答案 1 :(得分:-1)
你可以用这种方式来操纵URI
RewriteCond %{REQUEST_URI} ^/admin/(.*)$
RewriteRule .* http://admin.mysite.com/#1 [R=302,L]
希望这有效。顺便说一下,你可以在这里测试你的重写http://martinmelin.se/rewrite-rule-tester/