【问题标题】:mod_rewrite subdomain + dirmod_rewrite 子域 + 目录
【发布时间】:2011-07-04 06:05:01
【问题描述】:

我很惭愧不得不问这个问题,因为有太多关于这个的问题和答案,但我已经搜索并尝试了数周没有积极的结果。

我有带有 url 的文件上传页面: 文件.example.com

当用户上传文件时,它被放置在子目录中: files.example.com/files/file.jpg 因此,当用户要查看文件时,他必须访问该 url。

但我想删除目录文件/ 所以用户可以使用这个 url 查看文件: files.example.com/file.jpg

我已将 .htaccess 文件放在: files.example.com/.htaccess

并尝试了我能找到的一切。例如:

RewriteEngine On
RewriteBase /
RewriteRule ^files/?(.*)$ /$1

mod_rewrite 子域 + 目录

【问题讨论】:

    标签: .htaccess mod-rewrite subdomain dir


    【解决方案1】:

    你的规则是扭曲的方式。试试:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^([^/]*\.jpg)$ files/$1 [L]
    

    【讨论】:

    • 该代码出现内部服务器错误 (500)。如果我删除“jpg” ^(.*)$ /files/$1 [L] 我得到 404
    • @Patrik:在测试中我发现这会导致递归重写(因此出现 500 错误)。我已经稍微更新了正则表达式以防止这种情况。请尝试上面的新版本。
    • 太棒了!那么 [^/]* 和 (.*) 有什么区别呢?不匹配 / ?但是我还有一个小问题,我希望用户能够上传任何文件。因此,如果我删除 jpg,如果我尝试访问 index.php,我将被“定向”到文件目录。那么我可以说“仅当文件类型不是 .php 时才重定向”?
    • [^/] 表示匹配除斜线以外的任何字符。 . 表示匹配任何字符。我建议只重定向您想要重定向的扩展。如果您有多种图像类型,则可以使用^([^/]*\.(jpg|jpeg|gif|png))$
    • 好吧。对,那是真的。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 2013-01-26
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多