Apache .htaccess重写规则导致无限循环
如果任何通配符作为子域条目进入浏览器,我希望.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。 请帮帮我。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
提前感谢,您应该为重定向添加一个条件以防止重定向循环:
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隐藏查询变量?