【问题标题】:Apache Rewrite: show files from two directories in the same directoryApache Rewrite:显示同一目录中两个目录中的文件
【发布时间】:2012-01-29 08:25:28
【问题描述】:

我需要在浏览器中访问同一目录下两个目录中的文件。

目录可能看起来像这样:

/public_html/www.example.com/xml/

/xml/

/public_html/.htaccess

重要说明:此设置支持多个域。

/public_html/www.example1.com/

/public_html/www.example2.com/

http://www.example.com/xml/ 请求的 XML 文件位于 /public_html/www.example.com/xml/ 并且该文件不存在于该服务器路径中那么我需要检查 /xml/ 服务器路径。

显然,我们将从浏览器访问 /public_html/xml/ 路径(例如 www.example.com/xml/)所以假设我们可以看到Apache 生成的指向所有 XML 文件的链接的目录索引。我还希望能够从 example.com/xml/ 访问 /xml/ 目录中的文件。

还存在两个目录中存在具有确切名称的文件的问题。我更喜欢 /public_html/xml/ 目录优先,所以如果用户请求 www.example.com/xml/1.xml 的副本如果可能,将显示 /public_html/xml/1.xml 而不是 /xml/1.xml

请记住,我想将两个目录中的所有文件的访问权限合并到一个目录中,我不想让任何一个目录中的文件都无法访问,以使其他目录中的文件可以访问。

这必须使用位于 /.htaccess 下面的 .htaccess 文件来完成。

【问题讨论】:

  • @John- 你有解决这个问题的办法吗?
  • @Hacker 我不相信我最终会按照我 9 年前在这里的要求完成,我现在肯定不会这样做。

标签: apache mod-rewrite


【解决方案1】:

/public_html/xml/ 中的类似 .htaccess 的东西

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule  ^(.*)$  -  [L]

RewriteCond /PhysicalPath2AnotherFolder/%{REQUEST_URI}  -f [OR]
RewriteCond /PhysicalPath2AnotherFolder/%{REQUEST_URI}  -d
RewriteRule ^(.*)$  /WebPath2AnotherFolder/$1  [L]

ps:PhysicalPath2AnotherFolder 应该包含但不包含原始目录的 web 路径。或者,当然,可以添加额外的 RewriteCond 以便仅从 REQUEST_URI 中获取文件名。在那种情况下,它会类似于(我没有测试它:))..

RewriteCond %{REQUEST_URI} ^/.*?([^\/]+)$
RewriteCond /PhysicalPath2AnotherFolder/%1  -f [OR]
RewriteCond /PhysicalPath2AnotherFolder/%1  -d
RewriteRule ^(.*)$  /WebPath2AnotherFolder/$1  [L]

【讨论】:

  • 会看一下并尝试一下,让您知道结果是什么;感谢发帖!
  • @John 对不起,我不会在凌晨 4 点尝试任何东西)我要睡觉了,但是如果 8 小时内没有人纠正我,我会自己尝试 :) 顺便说一句,你应该明白它不会给出两个文件夹的索引。 php 脚本可能会从两者中生成列表。
  • 我没有要求你尝试任何东西,我只是在确认你的帖子,并且在我完成了一些 RL 的工作之后,我会尝试一下,我现在就要做。
  • @John 好的,我已经检查并做了一个小的更正。它正在工作 :) 很抱歉造成误解 - 我真的很想睡觉。
  • 酷豆,谢谢!轮到我睡觉了,已经26小时了。明天早上我会试试这个,让你知道结果如何,谢谢你的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
  • 2014-09-17
  • 1970-01-01
  • 2012-12-31
  • 2011-09-08
  • 1970-01-01
相关资源
最近更新 更多