当dns更改完成后,旧重定向会发生什么

时间:2014-01-16 15:15:46

标签: .htaccess mod-rewrite redirect dns

我的网站mobil.test.nu有一个重定向规则。

# For mobile devices:
RewriteCond %{HTTP_USER_AGENT} (android|blackberry|iphone|ipod|windows\ phone) [NC]
RewriteRule ^ http://test.nu/ [L,R=301]

# For non-mobile devices:
RewriteRule ^/?$   http://test.nu/mobil/index.htm [L,R=301]
RewriteRule ^(.*)$ http://test.nu/mobil$1 [L,R=301]

有些请求正在重定向到test.nu.

我正在将mobil.test.nu的dns更改为test.nu.

我想我必须在test.nu中重写所有来自mobil.test.nu的请求。

有人可以告诉我如何在dns更改后识别来自mobil.test.nu的请求。

修改 的 识别主机名并进行修改。

# For mobile devices:
RewriteCond %{HTTP_HOST} ^mobile\.test\.nu$ [NC]
RewriteCond %{HTTP_USER_AGENT} (android|blackberry|iphone|ipod|windows\ phone) [NC]
RewriteRule ^ http://test.nu/ [L,R=301]

# For non-mobile devices:
RewriteCond %{HTTP_HOST} ^mobile\.test\.nu$ [NC]
RewriteRule ^/?$   http://test.nu/mobil/index.htm [L,R=301]
RewriteRule ^(.*)$ http://test.nu/mobil$1 [L,R=301]

1 个答案:

答案 0 :(得分:1)

您需要添加检查%{HTTP_HOST}变量的条件:

# For mobile devices:
RewriteCond %{HTTP_HOST} !^mobile\.test\.nu$ [NC]
RewriteCond %{HTTP_USER_AGENT} (android|blackberry|iphone|ipod|windows\ phone) [NC]
RewriteRule ^ http://mobile.test.nu/ [L,R=301]

# For non-mobile devices:
RewriteCond %{HTTP_HOST} ^mobile\.test\.nu$ [NC]
RewriteCond %{HTTP_USER_AGENT} !(android|blackberry|iphone|ipod|windows\ phone) [NC]
RewriteRule ^/?$   http://test.nu/mobil/index.htm [L,R=301]

RewriteCond %{HTTP_HOST} ^mobile\.test\.nu$ [NC]
RewriteCond %{HTTP_USER_AGENT} !(android|blackberry|iphone|ipod|windows\ phone) [NC]
RewriteRule ^(.*)$ http://test.nu/mobil$1 [L,R=301]

不完全清楚你的规则应该做什么,因为我认为上述规则不会起作用。但基本上是:

RewriteCond %{HTTP_HOST} ^mobile\.test\.nu$ [NC]

会告诉您该请求是否适用于mobile.test.nu