RewriteRule 重定向到绝对路径,而不是正确的 URL

2024-01-09

我已经为我的网站创建了一堆 RewriteRules,并且在我的本地设置中没有遇到任何问题。这是我的 .htaccess 的片段:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteRule ^news/?$ news.php [L]

在本地,当我访问 127.0.0.1/news 时,它会正确重定向到 news.php 并屏蔽 URL。我刚刚更新了远程服务器上的 .htaccess 文件,并在尝试访问上面的示例时收到此错误:

在此服务器上找不到请求的 URL /mnt/target02/123456/123456/www.mywebsite.com/web/content/news.php。

我尝试将规则更改为:

RewriteRule ^news/?$ http://www.mywebsite.com/news.php [L]

并且页面加载正确。然而,地址栏显示的是news.php,而不是新闻。我是否遗漏了什么,或者我是否坚持使用丑陋(且不太安全)的地址? 谢谢!


如果您像我一样,您会尝试避免在替换 URL(新目的地)中添加前导斜杠,以便您的相同内容.htaccess文件可以与您的测试和生产服务器一起使用。我遇到了与您相同的问题,所需要做的就是设置:

RewriteBase /

这告诉 mod_rewrite 将替换 URL 基于 Web 根而不是文件根。另一个提示,如果您需要重定向到目的地的顶层,请使用./而不是仅仅/。我的测试服务器有一个端口(8080)并且不在根目录(因此它有一个非空RewriteBase of /site1/),并且网络上的大多数重写规则示例都没有考虑这种情况。如果您的替换从未以斜杠开头,则可以使用相同的.htaccess文件在您的测试服务器和实时服务器上,您可能需要更改的只是值RewriteBase,而不是更新每一条规则。

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

RewriteRule 重定向到绝对路径,而不是正确的 URL 的相关文章

  • 如何禁用 HTTP 的 HSTS 标头?

    我已将以下内容插入到我网站的 htaccess 中 以便能够访问HSTS预加载列表 https hstspreload appspot com
  • 带有 .htaccess 的漂亮网址?

    我刚刚创建了一个新的 WordPress 页面模板 在其中运行一些 php mysql 脚本 我想对其子页面应用 mod 重写 例如我生成了以下链接 http www quotist com quotes by authors html l
  • PHP和.htaccess认证解决方案

    这是布局 web root admin dir index php js img other files dirs dir files 到目前为止 我使用 htaccess passwd 保护管理目录 因为我希望对该目录中的所有文件 包括
  • 使用 .htaccess 重定向到动态相对路径?

    是否可以使 htaccess 理解 动态相对路径并正确重定向到它们 我的设置如下 http domain com htroot aaa xyz http domain com htroot bbb xyz http domain com h
  • CakePHP - 选择性 SSL

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

    我的网络应用程序中有这样的 url 模式 www mysitename com foldername controller method 所有请求的页面首先被重定向到根文件夹上的index php 然后处理请求的页面 但每当我进入管理面板
  • 控制缓存过期

    通过 Google 网站管理员工具的 PageSpeed 分析器运行我的网页后 它向我报告我的资源没有被缓存 下面是我的 htaccess 文件中直接取自 H5BP 的代码 我是否正确地假设以下过期时间设置正确 但我的实现中出现了问题 或者
  • .htaccess 在动态文件夹名称中加载索引

    我在 htaccess 加载动态文件夹名称中的索引时遇到问题 这是我的目录结构 root products gt this is constant folder name 而不是使用 GET 获取产品 url root products i
  • Magento 中的子域 htaccess 问题

    public html www domain com public html subdomain subdomain domain com public html htaccess public html subdomain htacces
  • 文件不存在时.htaccess 重定向

    我正在使用 htaccess 将用户重定向到我的主控制器 并且工作正常 但是当我调用一个不存在的js文件时 如下所示 这个js文件不只是说404 文件不存在 而是获取index php的内容 我应该如何进行 这是我的 htaccess
  • mod_rewrite :如果/否则输入 RewriteRule

    以下重写将以数字 4 开头的字符串作为变量传递给 process php RewriteCond REQUEST FILENAME f RewriteCond REQUEST FILENAME d RewriteRule 4 process
  • mod_rewrite, .htaccess 连接mysql数据库

    我希望 htaccess 文件中的 mod rewrite 链接到 mysql 数据库以向我提供映射信息 具体来说 我使用单个代码库来托管多个站点 因此 如果用户请求图像 例如 http www example com images car
  • 如何进行有条件的 .htaccess 密码保护

    我正在尝试使用 htaccess 对特定网址进行密码保护 不同的 url 指向相同的文件 但工作方式不同 我现在只需要用密码保护一个网址 我正在尝试使用 setenvif 来执行此操作 但它似乎不起作用 我可能不完全理解 apache se
  • 将 .com 重定向到 .htaccess 中的 .org

    我将domain com 和domain org 作为指向同一虚拟主机的别名 如何使用 htaccess 将所有domain com 请求重定向到domain org 你可以使用模组重写 http httpd apache org docs
  • IIS6 中是否有与 .htaccess 等效的基于文件的文件? (不是配置/插件)

    有很多similar对此有疑问 但它们似乎都涉及配置权限或安装插件 我正在寻找一种 愚蠢 的解决方案 即允许从源代码控制部署代码并自动访问某些被阻止的路径 而无需任何人配置服务器 我只需要目录和文件阻止 htaccess 没有其他功能 需要
  • 仅使用 mod_rewrite 重定向主页

    我有一个需要重定向的网站 但我不能只重定向 目录 因为服务器上的文件夹中还有其他网站 这样做也会重定向它们 不好 因此 我的 htaccess 文件包含一堆针对各个 HTML 页面的 301 重定向 并且这些文件工作得很好 但我需要重定向主
  • .htaccess 在本地主机上给出 500 错误

    我是 MVC 框架的初学者 我正在尝试根据教程创建一个自己的 他们提供的 htaccess 文件包含 RewriteEngine On RewriteCond REQUEST FILENAME d RewriteCond REQUEST F
  • 将 mod-rewrite 添加到现有 PHP 网站

    我正在更新一个 php 应用程序 该应用程序当前不使用 url 重写 目的是隐藏文件扩展名 网站总体结构如下 root index php login php page1 php page2 php page3 php page4 php
  • htaccess“命令”拒绝、允许、拒绝

    我只想允许一个国家 地区访问 但排除该国家 地区内的代理 这就是我所拥有的 为了方便起见缩短版本
  • 使用 .htaccess 进行 PHP 设置时出现 500 内部服务器错误

    当我使用时 htaccess对于以下 PHP 设置 我得到500 Internal Server Error访问网站时 中的代码 htaccess file php flag display errors off php flag log

随机推荐