mod_rewrite 重定向不存在的 URL

2023-12-02

我有一个旧网站,我已经接管了。新用户基本上会获得为他们创建的自定义页面。这是以一种不太奇妙的方式完成的。目前,它实际上生成一个以创建的 slug URL 命名的文件,并将其符号链接到名为“/main/”的文件夹。显然我想改变这一点。我的计划只是让它通过 .htaccess 将不存在的文件夹重定向到“/main/”。目前,这是我的 .htaccess 的样子:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt|index\.htm)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /main/ [L]

然而,这会产生重定向循环。我缺少什么?

Edit

在这一点上,我意识到我应该说我希望它保持输入的路径。例如,如果我把http://www.mydomain.com/test_person它应该保留该地址,但如果有意义的话,请将所有内容转发到主文件夹。


您希望您的规则不要重写已经以 main 开头的 URL,以免循环,例如:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^main/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^/]+/(.*)$ /main/$1 [L]

[L] 的真正含义并不像您所认为的 [L] 在 .htaccess 文件上下文中的含义。

您应该能够从 REQUEST_URI 环境变量获取请求的原始 url,但常见的做法是将 slug 作为 GET 变量传递到目标。

RewriteRule ^([^/]+)/(.*)$ /main/$2?user=$1 [QSA,L]

或者将所有内容传递给单个脚本,该脚本解释 URL 并找到要返回的正确内容:

RewriteRule ^([^/]+)/(.*)$ /main/index.php?user=$1&path=$2 [QSA,L]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mod_rewrite 重定向不存在的 URL 的相关文章

随机推荐

  • 如何将参数发送到 Microsoft Access 查询,以便我可以将访问参数查询导入 Excel?

    我需要将具有弹出输入参数的 Microsoft Access 查询导入到 Excel 中 我尝试了下面的代码 但它不起作用 我收到错误 93 告诉我未设置对象或对象变量 我希望能够引用 Excel 中包含当前和上个月值的两个单元格 然后将这
  • Python Regex - 拒绝带有换行符的字符串

    我想将完整的字符串与特定的模式匹配 比方说 word aaaa test re match r aaaa word this returns True 但是 如果该单词后跟换行符 word aaaa n test re match r aa
  • 如何使用 API v3 列出 YouTube 频道的所有上传视频(URL)?

    本文展示了如何在版本 2 中从特定频道获取所有上传的视频 但我不知道如何在版本 3 中做到这一点 是否可以 大多数版本 3 的文章只讨论搜索 Here 您将找到所有 Data API v3 参考 只需几个步骤即可 1 You list上传完
  • 如何使用任意语言环境比较“basic_string”

    我重新发布了今天早些时候提交的问题 但现在我引用了一个具体的例子来回应我收到的反馈 原问题可以找到here 请注意 这不是家庭作业 我只是想确定 C 是否无法执行 有效的 不区分大小写比较一个basic string对象也包含任意任意的因素
  • 此正则表达式中单引号的用途是什么?

    我继承了一些带有以下正则表达式的 C 代码 Regex a zA Z s 1 40 除了单引号的作用之外 我理解这个字符串 我到处搜索但似乎找不到解释 有任何想法吗 据我所知 这个表达是多余的 它匹配a z or A Z 或者 字符 或之间
  • gethostbyname() 在 iOS6 中失败

    我使用 gethostbyname 来获取设备 IP 在iOS5中 它运行良好 但在iOS6中 gethostbyname 返回的主机值为NULL 下面是我的代码 用于获取设备当前的本地IP retun the host name NSSt
  • 如何通过 HTML 下拉或选择元素实现自动完成功能?

    嗨 我正在尝试创建auto completion的功能下拉或选择html 表单元素 我需要一个功能 比如用户启动后typing on a drop down select元素根据它的match able元素将以以下形式出现选定的元素特定下拉
  • 如何在两个不同选项卡的内容脚本之间传输数据?

    在我的扩展中 我需要将一些数据从一个选项卡的内容脚本传输到另一个选项卡的内容脚本 如果我知道该选项卡对象的名称或 url 的一部分 如何使用 chrome tabs 选择某个选项卡 两个选项卡的脚本如何通信 UPDATE 显然我在 chro
  • 如何使用 stat_smooth 在二因子图上显示一条线?

    我有一个这样的 data frame df lt data frame a runif 1000 b runif 1000 c runif 1000 d sample c yes no 1000 replace TRUE 我进行了逻辑回归
  • 迭代 Boost fusion::vector

    我正在尝试使用以下方法迭代 boost fusion 向量 typedef typename fusion result of begin
  • 如何以编程方式将录制的音频文件保存在另一个文件夹中?

    我试图将录制的音频文件保存在我希望的文件夹中 而不是默认文件夹中 但不知何故我没能做到 my code Intent recordIntent new Intent MediaStore Audio Media RECORD SOUND A
  • 无法将透明 PNG 放在普通图像上 Python Tkinter

    所以我有 2 张图像 其中 1 张图像应该是背景 另外 1 张只是角色图像 我可以将一张图像放在另一张图像上 但该图像具有白色边框 即使它是 PNG 文件 This is how it looks like This is how I wa
  • Ruby 中的闭包和模块

    我有点困惑为什么这段代码不起作用 def create type Module new do def foo type end end end 打电话时foo在返回的模块上 type没有定义 我应该使用 Proc 或 lambda 来捕获
  • 在 bash 中使用正则表达式删除 XML 注释

    我想使用正则表达式 awk sed grep 删除 bash 中的 XML 注释 我看过有关此问题的其他问题 但他们遗漏了一些东西 这是我的 xml 代码 table table
  • mPDF 错误:某些数据已输出到浏览器

    我正在使用 mpdf 将 html 转换并显示为 PDF 当我在本地电脑 服务器上运行它时 我看到了 pdf 但是当我在我的站点服务器上运行它时 我收到此错误 mPDF错误 某些数据已输出到浏览器 无法发送PDF文件 url http SI
  • Rails:使用 Font Awesome

    我的网页设计师为我提供了更新的字体 图标 这些字体 图标已添加到 font Awesome 他将其放置在本地字体文件夹中 我还获得了一个 font awesome css 文件 我直接将 fonts 文件夹复制到我的 asset 中 并将
  • jquery Draggable & Droppable 获取源容器(draggable 来自)

    我为不同的答案做了这个 jsfiddle 我想知道如何获得可放置的源容器 http jsfiddle net d7wsz 8 jquery 是 Table1 tr not disabled Table2 tr not disabled Ta
  • 在 R、Rmd、knitr、bookdown 中打印 UTF-8 字符

    更新 2018 年 4 月 在不同的设置和计算机下 问题仍然存在 我相信它与所有 UNICODE UTF 8 字符有关 https www joelonsoftware com 2003 10 08 the absolute minimum
  • 获取adb版本失败; Ubuntu 11.10 中错误 = 13

    我向 eclipse 添加了 32 位 android adk Classic Indigo 版本 3 7 0 Ubuntu 11 10 中的构建 ID I20110613 1736 我使用 32 位 Ubuntu 当我启动 Eclipse
  • mod_rewrite 重定向不存在的 URL

    我有一个旧网站 我已经接管了 新用户基本上会获得为他们创建的自定义页面 这是以一种不太奇妙的方式完成的 目前 它实际上生成一个以创建的 slug URL 命名的文件 并将其符号链接到名为 main 的文件夹 显然我想改变这一点 我的计划只是