【问题标题】:How to ignore subdirectories with .htaccess?如何使用 .htaccess 忽略子目录?
【发布时间】:2017-10-18 04:23:04
【问题描述】:

如何配置我的.htaccess 以忽略子目录?

比如这个……

site.com/archive/2014
site.com/archive/2014/12
site.com/archive/xyz

应该显示...的内容

site.com/archive/

不管子目录。

【问题讨论】:

  • 这些文件夹中是否存在实际存在的文件夹,如果是,您是否希望将它们与不存在的文件夹区别对待?
  • 忽略什么?请分享您目前在 htaccess 中拥有的内容以及您想要实现的目标。
  • 您总是可以在子目录中添加一个 htaccess 文件来覆盖顶级 htaccess。
  • @cbroe 不,它们不是现有文件夹。
  • @magnus 我不想总是返回错误 404,所以我宁愿所有子目录都显示与主目录相同的内容

标签: php apache .htaccess web server


【解决方案1】:

在.htaccess 文件顶部附近使用 mod_rewrite 尝试以下操作:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^archive/. /archive/ [R,L]

这就是说...对于任何以/archive/<something> 开头但未映射到物理文件或目录的请求,然后重定向到/archive/。

请注意,这是一个外部重定向(与您在问题中建议的内部重写相反)以避免潜在的重复内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 2014-09-24
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多