.htaccess RewriteRule 有效,但地址栏中的 URL 没有变化?

2023-12-05

我一直在抓着头发试图解决这个问题,但没有任何效果。我有一个网页位于mysite.com/test.php我想做一个简单的 URL 重写并将其更改为mysite.com/testRewrite/实现这一点的代码应该是:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^testRewrite/$ test.php [NC,L]

无论出于何种原因,它都不起作用。当您转到新网址时 -mysite.com/testRewrite/有用。

但是,如果您输入原始 URLmysite.com/test.php它不会将浏览器中的地址更改为新的 URL。


mod_rewrite 不会自动强制从重写的 URL 重定向浏览器。你的规则只是说“如果有人要求/testRewrite/,在内部将其更改为/test.php“。它对处理实际请求没有任何作用/test.php,这就是为什么当您尝试访问时mysite.com/test.php,它给你/test.php.

现在,mod_rewrite 的问题是如果您只是添加该规则:

RewriteRule ^test.php$ /testRewrite/ [L,R=301]

当浏览器要求时,它将重定向浏览器/test.php to /testRewrite/,浏览器重定向后将应用第一个规则,并且 URI 被重写为/test.php,然后就可以了返回整个重写引擎并且再次应用上述规则,从而重定向浏览器,因此第一条规则重写为/test.php,并且上述规则再次重定向,等等。您会得到一个重定向循环。您必须添加一个条件以确保浏览器*实际请求/test.php并且它不是通过重写引擎搅动的 URI:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /test\.php [NC]
RewriteRule ^test.php$ /testRewrite/ [L,R=301]

这样,在 301 重定向发生后,该规则将不会再次应用,因为实际请求将是GET /testRewrite/ HTTP/1.1,并且条件不会得到满足。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.htaccess RewriteRule 有效,但地址栏中的 URL 没有变化? 的相关文章

  • VirtualHost 相同服务器名称不同目录

    我有一个分配给主机 redmine 应用程序 的正在运行的生产网站 我需要将一个新应用程序添加到同一主机作为子目录 这是在主机的基本文件夹中运行的 redmine 应用程序的当前虚拟主机配置
  • 如何在不改变相对路径的情况下使用apache的mod_rewrite重写规则

    我在 htaccess 中有以下重写规则 RewriteRule groups groupdetail php gname 1 L NC 这需要类似 www example com groups groupname 的内容并调用 www e
  • 使用 .htaccess 处理数千个重定向

    我正在进行网站检修 因此 我将几个页面转移到新的格式 他们没有保留与以前相同的文件名 因此迁移有点棘手 Example news alpinezone com 93467 正在成为http alpinezone com still more
  • mod_rewrite 规则不起作用

    我的 htaccess 中有以下规则 RewriteRule list php categoryShortForm 1 locationShortForm world QSA RewriteRule list php categorySho
  • Apache 2.2 重定向到 SSL *然后* 进行身份验证(使用解决方案 < 但这是废话吗?)

    似乎是 apache 的地方 所以这里 老问题 如何重定向 HTTP gt HTTPS 然后且仅当 HTTPS 时才进行身份验证 哦 我希望其中的大部分内容都在一个片段中 可以包含在多个 或 块中 因此没有虚拟主机级别的基于随机路径的重写
  • 如何使用 .htaccess 提供预压缩的 gzip/brotli 文件

    我正在尝试为 html js 和 css 提供预压缩的 gzip brotli 文件 用下面的代码 RewriteEngine on Brotli If the web browser accept brotli encoding Rewr
  • 使用 htaccess 文件重定向[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 Edit 我想重定向一个网址 to www example com location sydney from www example com rss
  • .htaccess 重定向到随机 URL

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

    我想重写我的 opencart 网上商店的产品网址 Opencart 本身有一个 seo 实现 这真的很糟糕 我已经更新了 seo 实现 以便能够对多个类别使用相同的关键字 请参阅 Opencart 重复 URL 关键字 https sta
  • Drupal URL 重写冲突

    我已将 Drupal 7 安装在站点的根目录中 htaccess 文件自安装以来未曾修改过 不过 我还在子目录中设置了 CodeIgniter 我在 CI 目录中创建了一个 htaccess 文件 其中包含从 url 中删除 index p
  • php:SEO 友好的 url

    我正在开发一个新项目 我想为这个网站创建 SEO 友好的 URL 例如 mysite com first content mysite com second content URL 必须是动态的 这意味着 URL 必须与内容标题相关 我怎样
  • 想要重定向除我之外的所有访问者

    基本上我即将开始在一个网站上工作 我想要一些可以添加到我的 htaccess 文件 或其他地方 中的内容 其工作方式如下伪代码 我的 ip 将代替 127 0 0 1 if visitors ip lt gt 127 0 0 1 redir
  • .htaccess 路由到服务器上的子目录?性能/加载时间

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

    Stack Overflow 上有很多类似的解决方案 例如htaccess http 到 https 带 www 不重定向子域 https stackoverflow com questions 30242495 htaccess http
  • Apache2 重写查询字符串转义两次

    在虚拟主机配置文件中使用此规则会导致查询参数的双重转义 RewriteEngine On RewriteCond HTTPS off RewriteRule https HTTP HOST REQUEST URI 例如 http examp
  • 将 .htaccess 中的非 www 重定向到 www

    我的 htaccess 文件中有这个 RewriteCond HTTP HOST example com RewriteRule http www example com 1 R 301 L 但每当我访问根目录上的文件时 就像http ex
  • HTAccess - 令人困惑的干净网址

    如果我想简单地重定向 clients page to clients php view page我会使用像这样简单的东西 它效果很好 Options FollowSymlinks RewriteEngine on RewriteRule c
  • Apache HtAccess AddHandler 以服务器名或 ip 为条件

    我在 Site5 上托管我的临时和生产服务器 在我看来 Site5 是一个相对较好的托管商 问题不在于它们的质量 而在于与 PHP 版本相关的问题 我们的开发服务器使用的是 PHP 5 3 这是一个很好的版本 5 4 太新了 我们还不想使用
  • Angular2通用部署到apache远程服务器

    我在将 Web 应用程序部署到 Apache 远程服务器时遇到问题 我已经通过以下步骤部署了一个使用 RESTful API 服务 用 PHP 编写 托管在 public html api 的标准 Angular2 Web 应用程序 在项目
  • 拒绝访问特定目录中的特定文件类型

    对于某些应用程序 用户可以上传自己的文件 由于这可能是非常大的文件 因此他们可以通过自己的 FTP 客户端上传这些文件 当然 我不希望他们上传一些可以访问服务器上所有其他文件的 PHP 文件 我想要防止这种行为的方法之一是拒绝仅访问这些文件

随机推荐