Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache .htaccess重写规则导致无限循环_Apache_.htaccess_Redirect_Mod Rewrite_Url Rewriting - Fatal编程技术网

Apache .htaccess重写规则导致无限循环

Apache .htaccess重写规则导致无限循环,apache,.htaccess,redirect,mod-rewrite,url-rewriting,Apache,.htaccess,Redirect,Mod Rewrite,Url Rewriting,如果任何通配符作为子域条目进入浏览器,我希望.htaccess文件重定向到某个页面。i、 我想要 sam.xyz.com 重定向到 sam.xyz.com/view.php?id=sam 我使用以下重写规则重定向 重新启动发动机 重写cond%{HTTP_HOST}^www.xyz.com[NC] 重写cond%{HTTP_HOST}^([^.]+).xyz.com 重写规则^(.*)$/view.php?id=%1[L,R] 我面临的问题是,它并没有转移到新的域,而是生成了一个无休止的循环 s

如果任何通配符作为子域条目进入浏览器,我希望.htaccess文件重定向到某个页面。i、 我想要

sam.xyz.com

重定向到

sam.xyz.com/view.php?id=sam

我使用以下重写规则重定向

重新启动发动机

重写cond%{HTTP_HOST}^www.xyz.com[NC]

重写cond%{HTTP_HOST}^([^.]+).xyz.com

重写规则^(.*)$/view.php?id=%1[L,R]

我面临的问题是,它并没有转移到新的域,而是生成了一个无休止的循环

sam.xyz.com

重定向到

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]

您应该为重定向添加一个条件以防止重定向循环:

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=前缀

此解决方案防止有人调用url: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,不要将访问者重定向到您要重定向到的url(/view.php?id=%1)

前缀.domain.tld/view.php?id=prefix

确保url不包含:id=前缀

此解决方案防止有人调用url: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,不要将访问者重定向到url(/view.php?id=%1)

页面连接已解决,但域会丢失其查询并导致无休止的循环。我做错了什么?我添加了相同的上述规则仍然是相同的循环组,忘记了斜杠,立即尝试谢谢:)需要更多帮助,如何从url中隐藏view.php?id=sam,保持其值在后端。或者至少从地址栏中隐藏查询字符串id=sam,可以吗?页面合并已解决,但域丢失其查询并导致无休止的循环。我做错了什么?我添加了相同的上述规则,仍然是相同的循环组,忘记了斜杠,现在就试试,谢谢你的帮助:)还需要一个帮助,我如何从url隐藏view.php?id=sam,保持其值在后端。或者至少从地址栏隐藏查询字符串id=sam,可以吗?这很有帮助,我如何从url隐藏查询变量?这很有帮助,我如何从url隐藏查询变量?