当前位置: 首页 > 知识库问答 >
问题:

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

荣波
2023-03-14

我想要我的。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。请帮帮我。提前谢谢,

共有2个答案

欧阳昊阳
2023-03-14

您正在重定向到: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)

毋澄邈
2023-03-14

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

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]
 类似资料:
  • 我的期望: 如果用户输入的Int不在正确的范围内,程序将给他另一次机会,直到用户给出正确的类型。 所以,我需要一个块。但我有一个无限循环。 我的代码: 我读到: 重置. nextLine()扫描仪 使用扫描仪。扫描仪后面的nextLine()。nextInt() nextInt()的扫描仪错误 扫描仪在使用next()或nextFoo()后跳过nextLine()? 如何使用java.util.扫

  • 我已经安装了WordPress在example.com.我还安装了CodeIgniter在文件夹这里,是文件夹名称,是控制器名称和CI的工作URL是。我的基本URL以https://开头。 现在我有一个WordPressURL,是我在WordPress admin中创建的页面,工作正常。 我想像一样运行我的CI路径,我想我们可以用一些重写规则来做,这样我的网址看起来就像。我已经添加了给定的为wor

  • 我有一个客户在他们的网站上有一个重写规则,使用404和SSL与https:但它总是重写为“www.mywebsite”。com'。他们希望它没有www。每当我试图修改规则时,代码就会因“太多重定向”而中断 这是旧的. htaccess规则 我试图删除上面的“www”,但当我这样做时,你会得到一个错误-无休止的重定向。 目标是一个简单的重写规则,允许所有重定向和404错误转到https://mywe

  • 我对react钩子和效果有点陌生,在使用useEffect时遇到了问题 上面的代码是我构建的useEffect,用于使用axios获取数据库中的所有数据,并且我将所有数据放在一个称为reports的状态中。 但是当我console.log报告时,它会导致无限循环。我不知道为什么? 让我给你看一个我做的简单动作。 我正在做一个按钮,当它被点击时,报告的状态(按id)将被更新。 这是该州报告结构的样本

  • 我在使用useEffect时搜索了很多关于无限循环的帖子,但仍然没有找到答案 在useEffect中,我试图调用get accounts api,当然,我放置了一个空数组,因为我只希望它在渲染后运行一次。但目前我喜欢添加“addAccount”功能。因此,如果我按下add按钮,它就会发送一个post请求。这里是一个问题,我想检查值是否已更改,因此我将值放入第二个参数,即空数组,它会导致无限循环。但

  • dml2select Description:将数据库更新请求转换为只读查询请求,便于执行EXPLAIN Original: DELETE FROM film WHERE length > 100 Suggest: select * from film where length > 100 star2columns Description:为SELECT *补全表的列信息 Original: