使用 .htaccess 清理 URL

2023-12-05

我正在尝试重定向我的域上的链接。 我想要实现的是: 当用户点击链接时

mydomain.com/index.php?dir=myfolder

我希望他被重定向到这个 URL,但浏览器栏应该显示这个 URL:

mydomain.com/myfolder

由于我无权访问如何建立链接(它是一个 php 站点),我尝试仅使用 .htaccess 文件来完成此操作。

这就是我所拥有的:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} subdomain.mydomain.com
RewriteCond %{REQUEST_URI} (.*)/style.css [OR]
RewriteCond %{REQUEST_URI} (.*)/script.js [OR]
RewriteCond %{REQUEST_URI} (.*)/logo.png
RewriteRule (.*) http://www.subdomain.com%{REQUEST_URI} [R=301,NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?dir=$1 [L]

所以当我进入"mydomain.com/myfolder"在浏览器中它工作正常并且地址栏中的 URL 保持这样。但是当我进入"mydomain.com/index.php?dir=myfolder"它也可以工作,但 URL 也保持不变(这不是我想要的)。 我假设我需要以某种方式更改 .htaccess 文件的 URL,然后将其(就像我已经做的那样)重写为 php-scheme。 我现在做了几种方法,但我不知道该怎么做。 我希望你能理解我的问题并能帮助我!

谢谢你!

EDIT:

解决方案(感谢@anubhava):

RewriteEngine on
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?dir=([^\s]+) [NC]
RewriteRule ^ %1? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?dir=/$1 [L]

只需将此规则附加到现有 .htaccess 文件的末尾即可:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php\?dir=([^\s]+) [NC]
RewriteRule ^ %1? [R=301,L]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 .htaccess 清理 URL 的相关文章

  • URL 扩展隐藏:重写与重定向

    我已经阅读了很多问题和答案 但我无法决定哪一个更好或如何使用这些扩展隐藏方式的组合 我想要的是就是有一个像这样的url重写堆栈溢出 那么我还应该做什么才能遵守这些规则 url example com file anyEXT show con
  • Apache mod_rewrite:在 Windows 计算机上使用 PHP 脚本的 RewriteMap 指令

    这已经让我发疯了 我似乎无法让 RewriteMap 指令适用于 Windows 上的 php 脚本 这是我的 httpd conf 文件中的相关片段
  • 有没有办法从 Symfony 应用程序中的 url 中删除 '/web' 而不将 'web' 目录的内容移动到根目录?

    我在使用 Symfony 创建应用程序时遇到一个问题 即 url 中出现 web 我找到了一种方法来摆脱这个问题 将 web 目录的内容移动到根目录 但我认为这不是一个好的开发实践 必须有其他方法 谁能告诉我是否还有其他方法可以做到这一点
  • 如何防止文件被直接 URL 访问?

    我正在使用 Apache 并且我的目录中有一个示例 Web 文件夹本地主机 喜欢 http localhost test 文件位于test文件夹 index html sample jpg htaccess 样本来源index html i
  • 进行 URL 重写

    当我点击网站上给定条目的评论部分时 URL 如下所示 http www com comments index php submission Portugal 20Crushes 20North 20Korea submissionid 62
  • 第301章

    Problem 访客打开网址website com i 133r534 213213 12312312但此网址不再有效 需要将其转发到website com 视频 133r534 213213 12312312 我尝试过的 在过去的几个小时
  • 在 htaccess 中设置内存限制 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在使用 WordPress 我需要增加内存 因此我将以下行添加到我的 htaccess 文件中 BEGIN WordPress
  • 绕过带index.php和不带index.php的url的htpasswd身份验证

    我已经使用 htaccess 文件添加了 htpasswd 保护进行身份验证 现在我想绕过身份验证www website com and www website com index php其中两个 url 都在访问 index php 文件
  • WordPress Symfony 共存

    我们有一个在 Symfony 上运行的网站 它是由比我更有能力的人开发的 不过 我对 WordPress 非常熟悉 并将在该网站上安装一个博客 目前 该网站的根运行在 Symfony 上 但我希望 WordPress 能够接管 而不必触及
  • 在 htaccess 文件中使用 RewriteMap

    如何在 htaccess 文件中使用 RewriteMap 指令 当我把它放在那里时 我收到 此处不允许 RewriteMap 错误 我知道当将其放入 httpd conf 或虚拟主机配置文件中时 此错误将会消失 但我想知道是否可以将其放入
  • htaccess - XAMPP 上的互联网服务器错误 500 [已关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我尝试在 XAMPP 上运行脚本 但收到 互联网服务器错误 500 在实时服务器上运行时效果很好 我认为这是一个 htaccess 错误 htacce
  • htaccess重写和auth冲突

    我有 2 个目录 每个目录都有一个 htaccess 文件 html htaccess 该文件进行了重写 将几乎所有内容发送到 url php RewriteCond REQUEST URI exported php gif jpe g p
  • 如何禁用 HTTP 的 HSTS 标头?

    我已将以下内容插入到我网站的 htaccess 中 以便能够访问HSTS预加载列表 https hstspreload appspot com
  • 设置 Silex Bootstrap 时出现 Apache 错误:无法检查 htaccess 文件

    我正在尝试使用 Silex Bootstrap 建立一个网站 我已将它与其他 Web 项目一起放在我的文件夹中 并更改了 Apache 配置中的 DocumentRoot
  • htaccess隐藏php扩展时出错,只隐藏html

    我在使用 htaccess 隐藏网站上的 php 扩展时遇到问题 我看到很多网站试图修复它 但没有任何结果 但只有 html 扩展名对我来说是隐藏的 在我的 htaccess 上 我用这个来隐藏扩展 它就在错误页面之后 这是我的 htacc
  • CakePHP - 选择性 SSL

    如何对网站的某些部分强制使用 HTTPS 例如登录页面或注册页面 并使用 HTTP 来完成网站的其余部分 我最喜欢的强制转换为 https 的方法是将其作为 php 脚本中的第一件事 它可以在 Joomla 中运行 也可以在 CakePHP
  • 控制缓存过期

    通过 Google 网站管理员工具的 PageSpeed 分析器运行我的网页后 它向我报告我的资源没有被缓存 下面是我的 htaccess 文件中直接取自 H5BP 的代码 我是否正确地假设以下过期时间设置正确 但我的实现中出现了问题 或者
  • 使用 .htaccess 重定向到 404 错误的 php/html 文件

    例如 我想将所有 404 错误重定向到 404 php 我尝试过使用ErrorDocument 404 404 php在 htaccess 中 但如果运气不好 也许我的其他规则不允许这样做 我不太确定 因为我在 www 上找不到此信息 如果
  • .htaccess 将所有页面重定向到新域上的主页

    我将使用哪个重定向规则来重定向下的所有页面olddomain example被重定向到newdomain example 该网站的结构完全不同 所以我想要每一页在旧域名下重定向到新域名索引页 我认为这可以 在 olddomain examp
  • AH10411 错误:在 apache mod_rewrite 中管理空格和 %20

    我今天更新了 Apache 到 2 4 56 1 并且加载了 htaccess过去有效的重写现在出现了 AH10411 错误 与查询中的空格有关 我正在努力寻找 适当 的解决方案 用户单击一个链接 例如 a href FISH 20J123

随机推荐

  • YAML 合并级别

    我们有一个包含重复部分的 gitlab ci yaml 文件 test client before script node v yarn install cache untracked true key client paths node
  • 如何将引用(不可序列化)从一个活动传递到另一个活动?

    假设我有一个对象的引用 我应该如何将其从一个活动传递到另一个活动 我不想查询应用程序对象 单例 静态变量 这还有可能吗 您可以在另一个活动中声明一个静态变量 或者在应用程序类中声明一些全局变量 然后在任何活动中访问它 就像您想从OldAct
  • Spring 会话范围的 bean(控制器)和对服务的引用(在序列化方面)

    标准情况 你有一个控制器 Controller with Scope session 通常期望在会话中放置的类能够实现Serializable以便在服务器重新启动时可以物理存储它们 例如 如果控制器实现Serializable 这意味着它引
  • .NET 中的“计算机不是我的成员”错误

    这个错误非常烦人 我已经进行了各种搜索 并且已经能够解决这个问题 我是该应用程序的几位开发人员之一 也是唯一遇到此问题的开发人员 我之前已经通过将扩展添加到项目属性中的 我的扩展 面板 这会生成不同的错误 然后删除该新扩展来临时修复了该问题
  • 从日历中获取日期之前的 18 年

    我需要获得 18 年后的完整日期 dd mm yyyy 我用代码作为 日历计算 Calendar getInstance calc add 日历 YEAR 18 它检索年而不是月或日之前的 18 年 即使在任何月份的 1 号等极端情况下 我
  • 如何在列表视图的行之间留出空白?

    在我的应用程序中 我需要列表视图在列表行之间有空格 这样我就可以为每一行提供背景 并且它看起来像行块 我尽了最大努力但没有找到任何解决方案 您可以使用android divider and android dividerHeight自定义行
  • 使用仅包含 ISO 周的数据集将 ISO 周聚合为几个月

    我的数据位于数据框中 其结构如下 df2 lt data frame Year c 2007 Week c 1 12 Measurement c rnorm 12 mean 4 sd 1 不幸的是 我没有每次测量的完整日期 例如缺少天数 只
  • 如何防止 GWT 应用程序中的 DoubleSubmit?

    澄清一下什么是双重提交 当用户点击提交按钮两次时 服务器将处理相同的 POST 数据两次 为了避免这种情况 除了在单次提交后禁用按钮之外 大多数 Web 框架 如 Struts 都提供了令牌机制 我正在 GWT 中寻找与此等效的内容 如果您
  • 如何获取上传文件的最后修改日期?

    我上传一个 XML 文件以将其内容迁移到我的数据库 但我想首先存储该文件的最后修改日期 以确保该文件与上一个文件相比没有发生任何更改 如何获取文件的最后修改日期 有没有 javascript 函数可以做到这一点 当您使用文件输入上传文件时
  • ASP.NET MVC Excel导出文件格式错误

    我目前正在编写一个 ASP NET MVC 5 控制器操作 以将一些数据导出到 Excel 文件 使用我在此处找到的一些代码 它有效 主要是 它输出一个 Excel 文件 我可以打开该文件 但在显示以下错误消息之前无法打开 Export x
  • 单次跳跃最多回溯 n 个楼梯,最多 k 步

    您需要爬一个有 n 个台阶的楼梯 并且您决定通过跳上台阶来获得一些额外的锻炼 单次跳跃最多可以完成 k 步 返回爬楼梯时所有可能的跳跃顺序 并排序 我的实施显然给了我错误的答案 def climbingStaircase n k final
  • 创建 Outlook 规则以根据主题行中的文本创建文件夹(如果需要)[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在寻找一种清晰的方法来使用 vba 读取收到电子邮件的主题行 以便创建新文件夹或仅使用现有文件夹将电子邮件移入 我看过一些 vba 示例 但没有一个解决在 Outlook 的
  • 如何在新的heroku应用程序中使用okta oauth登录

    我在我的express node js 应用程序中使用okta oauth 当我在 heroku 中部署并运行新应用程序并浏览登录页面时 我收到 404 状态代码 由于某种原因 我无法验证我的第三方 okta 应用程序的合法性 然而 在本地
  • Cookie 不会删除

    所以我的index php 中有这样的代码 如果用户选中了记住我框 那么它将设置一个名为 RememberMe 的 cookie 有效期为 2 周 这部分工作正常 现在我遇到的问题是当他们按下注销时删除这个cookie 按注销后 它们会被重
  • 替换字符串中的单个字符

    问题是需要替换给定字符串中的单个字符 同时保留字符串中的其他字符 代码是 if command equalsIgnoreCase replace single System out println Enter the character t
  • 保持两个线程之间的布尔值同步

    在一个线程 线程2 中 我更改了一个值 例如 CheckSuccess false 现在主线程 thread1 GUI Form 没有接收到更改 如何 传播 所有线程周围的更改 我的印象是线程应该操纵数据 而不是在单独的实例上工作 除非被告
  • 何时何地放置 @class 声明

    我正在开发一个包含多个自定义类的项目 我有一个CardModel NSObject 具有一些整数属性来保存数据 以及Deck NSObject 有一个数组可以容纳一堆CardModels然后一个CardView UIView 有一个Card
  • javax.faces.FacesException:表达式错误:命名对象:net.bootsfaces.layout.Well 未找到

    我正在尝试使用 BootsFaces 0 7 测试 JSF 2 2 项目 该项目在 GlassFish 3 和 PrimeFaces 5 2 上运行得非常顺利 但是在使用 BootsFaces 库中的任何标签的页面上 例如
  • 在 C 中哪种方式更好地将数组作为函数参数传递?

    有 3 种方法将数组作为函数参数传递 形式参数为一个指针 e g void myFunction int param 形式参数为一个指定大小的数组 e g void myFunction int param 10 形式参数为未调整大小的数组
  • 使用 .htaccess 清理 URL

    我正在尝试重定向我的域上的链接 我想要实现的是 当用户点击链接时 mydomain com index php dir myfolder 我希望他被重定向到这个 URL 但浏览器栏应该显示这个 URL mydomain com myfold