【问题标题】:How to Forward All Website Directories to Root public_html如何将所有网站目录转发到根 public_html
【发布时间】:2017-10-12 10:16:36
【问题描述】:

我目前有一个 .htaccess 文件,其中包含适用于单个子目录路径的这些 RewriteRules:

RewriteRule ^C / [L]
RewriteRule ^D / [L]

domain.com/Cxyz--> domain.com domain.com/Dxyz--> domain.com

我不知道如何 1) 将其设为通用,以便用于启动子目录的任何字符(无论大小写)转发到根域,以及 2) 处理多个较低的子目录:

domain.com/Path1/Path2--> domain.com

我确信这很容易,但我想不通。我编写的任何规则,如果它们正确解析,就永远不会正确显示网站,就好像 CSS 文件不可访问一样。

【问题讨论】:

  • 我们在谈论真正的目录吗?您的规则还会重新连接文件,例如/Contact.html 或 /Custom/style.css

标签: php apache .htaccess mod-rewrite


【解决方案1】:

如果您只需要真正的目录(存在于文件系统上) 只需这样做:

RewriteEngine On
# exclude if the Path starts with lower case letter
RewriteCond %{REQUEST_URI} !^/?[a-z].*$
RewriteRule .* / [L]

【讨论】:

  • 如果我删除 RewriteCond %{REQUEST_FILENAME} -d 行,这几乎对我有用。不幸的是,正如您所指出的,我想保留一些小写的真实文件名路径。您能否更改底部规则,使其以大写字符而不是通配符开头的任何路径?
  • 最后的跟进...如果有多个文件夹,即 domain.com/Abc/Xyz 怎么办?
猜你喜欢
  • 1970-01-01
  • 2012-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-26
  • 2012-03-21
  • 2013-04-21
  • 2018-09-27
相关资源
最近更新 更多