【问题标题】:.htaccess -- hide dir name in url while keeping folder structure.htaccess -- 隐藏 url 中的目录名称,同时保持文件夹结构
【发布时间】:2016-05-25 23:34:07
【问题描述】:

我有一个站点,其中的文件包含在 /pages/ 目录中。 我试图从 URL 中隐藏 /pages/ 目录,但它们仍然在目录中,所以基本上我正在尝试实现这一点:

www.example.com/sub/

应该加载:

www.example.com/pages/sub/

www.example.com/sub/file.php

应该加载:

www.example.com/pages/sub/file.php

-- 这里的目的是从所有 url 中删除 /pages/

提前致谢

【问题讨论】:

    标签: php apache .htaccess


    【解决方案1】:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ pages/$1 [QSA,L]
    

    如果文件或目录不存在,则在 pages 文件夹中尝试。

    QSA 添加 url 参数(如 ?param1=val1&param2=val2)

    【讨论】:

      【解决方案2】:

      Apache 重写:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

      学习一下。

      活下去。

      讨厌它?

      编辑:它是第一个先评估,最后一个评估过程,因此在指定规则时要考虑周到,因为即使正确建立了一个规则,也是一个更广泛、更通用的规则,它也符合相同的模式(取决于通配符)有机会篡夺先前的(想想 CSS 声明压缩,如果你熟悉的话)

      【讨论】:

      • 感谢您提供的网址,会查看并继续尝试。
      • 简单的答案是RewriteEngine on NEWLINE-> RewriteRule "^/pages/$" "/" 但重写看似“简单”,如果不完全理解可能会导致严重的头痛
      • @BrandtSolovij 应该在您的实际答案中,因为它基本上是一个“rtfm”评论。
      • @ccKep apache 重写可以说是通向 grok 的入门药物。如果提问者尝试并发布了他们尝试过的内容 - id 已经投降了您建议我应该拥有的方式。他们没有,所以我没有。这是一个有价值的问题,所以我没有标记重复
      猜你喜欢
      • 2013-07-12
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      相关资源
      最近更新 更多