【问题标题】:X-SendFile & mod_rewriteX-SendFile & mod_rewrite
【发布时间】:2016-05-10 14:27:45
【问题描述】:

关于 * 的第一个问题,但这个问题真的难倒我。所以目前的设置是我有一个文件托管站点,其中非常成功,直到我想将我的 URL 从 https://example.net/project/filehost/?fid=XXXXXXXX 重写为 https://example.net/project/filehost/XXXXXXXX 并使用 X-SendFile 提供文件,假设文件存储在 @987654323 @

我的.htaccess

XSendFile     On
Options +FollowSymLinks
RewriteEngine On
RewriteBase     /project/filehost/
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d
RewriteRule     ^([a-zA-Z0-9]{8})$       ?fid=$1     [L]    # Handle product requests

有趣的是,当我尝试脚本时,我得到了

xsendfile: cannot open file: redirect:/project/filehost/data/XXXXXXX

另外,我在/project/filehost/index.php上的index.php大致是

$tempFile = "data/" . $_GET['fid'];
header("X-Sendfile: " . $tempFile);

除非我别无选择,否则我不能透露我的整个代码

我该如何解决这个问题?如果没有足够的细节,请告诉我。

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    显然我不得不这样做

    RewriteRule     ^([a-zA-Z0-9]{8})$       ?fid=$1     [L, R=301]    # Handle product requests.
    

    感谢GitHub over here@raminasri

    【讨论】: