【问题标题】:htaccess only one file in subfolder and keeping the urlhtaccess 子文件夹中只有一个文件并保留 url
【发布时间】:2020-12-14 16:25:34
【问题描述】:

我需要将文件放在一个新文件夹中,如下所示: domain.com/newsite/newpanel/events.php

服务器中还有其他文件,如:

  • domain.com/events.php,
  • domain.com/oldsite/events.php 等

要求 1: 我无法使用通用规则重定向所有内容(因为存在旧实现), 所以我只想重定向特定的网址。 domain.com/events 现在应该跳过旧文件并转到 domain.com/newsite/newpanel/events.php

要求 2: 我试过这样的东西

RewriteRule ^events /newsite/newpanel/events/$1 [P]

但是 url 栏上的 url 会改变。是否可以显示 domain.com/events?

谢谢大家!

【问题讨论】:

  • 您的域名在示例中看起来相同(前端和后端 url),但您使用的标志 [P] 用于代理我相信,您能否确认您是否拥有相同的域名只需要重定向/重写一次网址吗?
  • 是的,同一个域。

标签: apache .htaccess mod-rewrite url-rewriting


【解决方案1】:

编辑:由于 OP 在 cmets 部分中提到了不同的 URL,因此在此处添加解决方案。

RewriteEngine ON
RewriteCond %{REQUEST_URI} ^/CProjects/events/?$ [NC]
RewriteRule ^(.*)$ CProjects/folderA/folderB/events [L]


根据您显示的示例,您能否尝试以下操作。在将这些规则放入 .htaccess 文件后,请确保在测试 URL 之前清除浏览器缓存。

RewriteEngine ON
RewriteCond ^/events/?$ [NC]
RewriteRule ^(.*)$ newsite/newpanel/events.php [L]

【讨论】:

  • 不,没用。它说找不到文件。
  • @phantomhive 您能否在此处提供您点击的示例链接,但它不起作用,以便我可以进一步检查这个链接。
  • 非常感谢您的帮助!好的,我的链接是:localhost/CProjects/folderA/folderB/events,我希望它可以通过localhost/CProjects/events 访问。它是 localhost atm,但会被部署。非常感谢!!
  • url 栏也不应该改变显示,但它应该保持为 localhost/CProjects/events。
  • @phantomhive,这看起来与你最初的问题完全不同,我相信 :) 让我在一分钟左右为这个问题添加解决方案。
猜你喜欢
  • 2011-11-16
  • 1970-01-01
  • 2012-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多