【问题标题】:Controlling children paths with .htaccess?用.htaccess 控制子路径?
【发布时间】:2013-02-14 17:08:40
【问题描述】:

我有一个在子文件夹下运行 CMS 的站点,但我不想像 http://mysite.tld/cms/ 那样加载它,而是希望所有页面都像位于 http://mysite.tld 的根目录一样加载。

到目前为止,我已经能够完成其中的一部分,以便索引文件在http://mysite.tld/ 加载,但是当我开始接触子页面时,我最终得到http://mysite.tld/cms/some-page 而不是http://mysite.tld/some-page .

到目前为止我的.htaccess如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?mysite.tld$
RewriteRule ^(/)?$ cms [L]

我不禁认为 .htaccess 中一定有一些我缺少的东西可以促进子页面在根目录中而不是在 /cms/ 路径中工作?

【问题讨论】:

  • 这样的东西应该可以工作:RewriteRule ^cms/(.*) /$1 [L]
  • @faa 实际上我认为你在这里。我现在已经能够获取页面,但是没有找到诸如样式表和其他相关资源之类的资产。尽管如此,我必须在根目录中包含一个 index.php 文件,该文件启动对子目录的要求,所以我觉得我还没有在 .htaccess 中正确设置。
  • 从技术上讲,我似乎只能使用 ReeriteEngine OnRewriteRule ^(/)?$ cms/$1 来解决问题,但我得到了这些缺失的资源。

标签: apache .htaccess apache2


【解决方案1】:

我找到了following 的作品:

RewriteRule ^foldername – [L,NC]

  • - 表示什么都不做。

  • L 表示这应该是最后一条规则;忽略后面的一切。

  • NC 表示不区分大小写(因此“FOLDERNAME”也匹配)。

Rails 方法也可以:

RewriteCond %{REQUEST_URI} ^(folders|to|ignore).*
RewriteRule .* – [L]

【讨论】:

    猜你喜欢
    • 2011-05-10
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 2014-08-28
    相关资源
    最近更新 更多