我想要我的。htaccess文件,如果任何作为子域条目的通配符出现在浏览器上,则重定向到某个页面。i、 我想要
山姆,xyz。通用域名格式
重定向到
山姆,xyz。com/view。php?id=sam
我使用以下重写规则重定向。
重新启动引擎
重写cond%{HTTP_HOST}^www.xyz。com[NC]
重写cond%{HTTP_HOST}^([^.])。xyz。通用域名格式
重写 ^(.*)$ / view.php?id=%1[L, R]
我面临的问题是,它不转移到新的领域保持查询字符串,而是生成一个无尽的循环
山姆,xyz。通用域名格式
重定向到
http://sam.xyz.com/view.php?id=sam
但如果没有无休止的循环,就不会移动到上面的url。请帮帮我。提前谢谢,
您应该为重定向添加一个条件,以防止重定向循环:
RewriteCond %{REQUEST_URI} !^/view\.php
整个代码是:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.xyz.com [NC]
RewriteCond %{HTTP_HOST} ^([^.]+).xyz.com
RewriteCond %{REQUEST_URI} !^/view\.php
RewriteRule ^(.*)$ /view.php?id=%1 [L,R]
您正在重定向到:prefix.domain.tld/view.php?id=prefix
确保url不包含:id=前缀。
这个解决方案防止,有人调用的网址:aaa.example.com/view.php?id=bbb
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.xyz.com [NC]
RewriteCond %{HTTP_HOST} ^([^.]+).xyz.com
RewriteCond %1::%{QUERY_STRING} !^([^:]+)::.*id=\1
RewriteRule ^ /view.php?id=%1 [L,R]
注意: (.*) 在重写规则中已过时。
离开R不重定向访问者到网址(/view.php?id=%1)