Mod重写目录结构以不同方式显示

时间:2011-06-07 05:47:17

标签: apache .htaccess mod-rewrite

我讨厌不得不寻求帮助,但编辑.htaccess是生活中的一件事,我不能也不会永远不知所措。几个月来我一直在努力学习,而我却无处可去。我终于承认失败并前来寻求帮助!

我有一个目录: -

http://example.com/images/blog/year/month/anyfilename.jpg

我想要的,如果可能的话。始终显示为: -

http://example.com/pix/anyfilename.jpg

然后我会继续上传正确的年/月目录中的文件,这些内容只有我才能看到。对于访问者来说,如果他们查看了图像,他们会看到后者的URL(我可以处理解析PHP页面中的链接以匹配重写的“虚拟”目录,我自己也不会有问题)。

我已接近使用它的时间,图像不再可见,这是有道理的,但我认为能够重写URL的重点是避免不得不移动文件?

我有RewriteEngine,以及Options + FollowSymlinks,我知道所有设置都正确,因为其他规则和重定向工作。只是这个不想玩。

我没有显示示例,因为我没有可行的示例。我到处搜索,接近答案,但从来没有任何足够接近我需要的东西,实际上为我工作。我没有想法。

帮助我Obi-Wan Overflow,你是我唯一的希望。

1 个答案:

答案 0 :(得分:0)

你只能通过mod-rewrite来做你想要做的事情。问题是您有多个文件可以存在的位置,并且您的重写规则不接受任何类型的输入来查找它。您可以执行http://www.example.com/pix-month-year/anyfilename.jpg之类的操作。 Mod-rewrite不是脚本语言。

或者,您可以创建一个传入文件名的PHP脚本,它可以搜索图像目录,直到找到匹配项,然后将图像数据传递给浏览器。 (请记住在多个文件夹中考虑相同的文件名。)

你的mod_rewrite就是这样的。

RewriteRule ^pix/(.*)$ find-pix.php?filename=$1