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 的相关文章

  • 使用 htaccess 文件重定向[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 Edit 我想重定向一个网址 to www example com location sydney from www example com rss
  • 是否可以处理这样的URL

    http www example com http www test com http www example com http www test com 我使用 htaccess 尝试了许多不同的方法 但没有成功 我需要将第二个网址作为参
  • 使用 Laravel Intervention 库缓存动态图像不起作用

    我目前正在使用 Laravel 5 并利用干预图像集成 http image intervention io http image intervention io 我动态地使用它 因此图像具有如下 URL http example org
  • .htaccess 重定向到随机 URL

    我的服务器上有几个页面有流量 我需要将它们重定向到其他网站 这是最简单的部分 问题是我需要将事情混合起来并随机将人们发送到新站点 我发现可以在 time sec 之前做到这一点 但无论我尝试什么 我目前的知识都不足以使其发挥作用 这是我现在
  • 如何重写 URL 而不刷新,例如 GitHub.com

    我在浏览 GitHub com 时注意到 在查看存储库的源代码时 您单击一个文件 源代码会滑入 并且 URL 会发生变化 但页面看起来并没有刷新 有谁知道这是如何做到的 我见过使用 符号完成此操作 尤其是在创建 Flash 站点时 但我从未
  • Drupal URL 重写冲突

    我已将 Drupal 7 安装在站点的根目录中 htaccess 文件自安装以来未曾修改过 不过 我还在子目录中设置了 CodeIgniter 我在 CI 目录中创建了一个 htaccess 文件 其中包含从 url 中删除 index p
  • .htaccess 路由到服务器上的子目录?性能/加载时间

    我想知道是否可以使用 htaccess 文件将我的域直接路由到服务器上的子目录 我从常规虚拟主机提供商处购买了虚拟主机软件包 其中我的domain com 连接到我的服务器的根目录 我想知道是否可以以某种方式将 htaccess 文件上传到
  • .htaccess HTTPS 主域和通配符 HTTP 子域 + 所有非 WWW

    Stack Overflow 上有很多类似的解决方案 例如htaccess http 到 https 带 www 不重定向子域 https stackoverflow com questions 30242495 htaccess http
  • RewriteEngine On .htaccess 不起作用

    我正在尝试提出我的请求如何处理这样的文件 r login 但有像index php这样的服务器吗 r login 我正在使用的 htaccess 代码似乎不起作用 Options FollowSymLinks RewriteEngine O
  • 使用 htaccess 将 http://www、http:// 和 https://www 重定向到 https:

    在我的网站上 我在非 www 版本的域上安装了 SSL 证书 我想使用 htaccess 将 http www http non www 和 https www 重定向到 https 我可以将 www 转换为非 www 但 https ww
  • Web.config 将所有路径重定向到index.php - 不起作用

    我主要使用 Apache 和 htaccess 但我目前正在开发一个托管在 Windows 服务器上的网站 Web config 给我带来了很多问题 我试图将所有 URL 请求重定向到 index php 以便 PHP 脚本可以解析 URL
  • PHP、htaccess:在 URL 中应用页面标题

    我想在 URL 中应用页面 HTML 标题 例如 在这里 stackoverflow url 是这样的 http stackoverflow com questions 10000000 get the title of a page ur
  • 使用ip地址访问时删除index.php

    我在服务器上上传了 codeigniter 项目 从 URL 中删除 index php 不起作用 我使用IP地址访问它 喜欢http ip http ip地址 下面是我的htaccess
  • 将混合内容重定向到 HTTPS 的正确 htaccess 规则是什么

    当通过 HTTPS 访问网站时 是否有一种方法可以使用 htaccess 重定向条件和重定向来捕获通过 HTTP 调用的内容 如果通过 HTTPS 访问网站 http 内容将被重定向到 https 等效 url 本质上 当我的网站通过 HT
  • 将 http 和 https 请求重定向到新主机

    在 Apache 2 4 6 中 我想重定向来自http A org foo and https A org foo to https B org foo 我正在使用以下指令
  • 如何从网站网址中隐藏 .html 扩展名

    我知道这个问题以前曾被问过 但有人知道隐藏 html 扩展名的好方法吗 我已经尝试了许多代码和许多答案https stackoverflow com https stackoverflow com 但我没有看到结果 那是我再问你一次 我有一
  • 将大写 URL 重定向为小写(*** 除外) - htaccess

    我正在尝试将大写 URL 重定向为小写 但有点噩梦 主要是我的 htaccess知识缺乏 目前我有
  • 将具有子目录的域转发到具有子目录的其他域

    我有一个热爱域名的客户 更喜欢转发域名 其中许多域没有与其关联的网站 它们仅用于营销和转发 我知道如何轻松地将一个域转发到另一个域 但我好奇的是如何将这些域的特定 url 转发到其他特定 url 例如 www site1 com 目录 gt
  • 从子域重定向到域+ .htaccess

    我可以为多个域配置 RewriteRule 吗 就像我的要求是 我当前的域名 www maindomain com 假设我有三个域和子域 子域网址是 example1 maindomain com example2 maindomain c
  • 在 .htaccess 中更改什么以使其停止显示子域

    我有这个 RewriteEngine on RewriteCond HTTP HOST m myurlname com RewriteCond HTTP USER AGENT safa NC RewriteRule http m myurl

随机推荐

  • 如何将参数发送到 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 的文件夹 显然我想改变这一点 我的计划只是