【问题标题】:deny file request and redirect to .php page using .htaccess拒绝文件请求并使用 .htaccess 重定向到 .php 页面
【发布时间】:2013-04-08 03:50:20
【问题描述】:

我正在使用 wordpress,并且正在使用 .htaccess,但我并不真正了解它的功能。

场景如下: 当用户尝试从上传目录访问文件时(例如:http://[localhost]/wordpress/uploads/video.mp4),他将被重定向到一个 php 页面,该页面决定用户是否有权下载/查看文件(例如,重定向到以下内容:@ 987654322@).

有人知道我应该如何处理 .htaccess 吗?

.htaccess 文件应该放在哪个目录下?

【问题讨论】:

    标签: wordpress .htaccess redirect directory


    【解决方案1】:

    您可以为此使用 WordPress 根 .htaccess 文件,也可以在上传目录中创建一个。我建议坚持使用您已经用于 WordPress 的文件。

    /wordpress/.htaccess修改内容

    RewriteBase /wordpress/
    # ^ your base should already be set - if it hasn't, put this just under RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^uploads\/(.*) serve.php?filename=$1 [R,L]
    

    注意:如果你不想重定向,你仍然可以将它伪装成实际的文件名,它仍然会返回PHP响应。您可以通过删除R 标志来做到这一点。 (这会将最初请求的 URL 保留在地址栏中。)


    编辑:根据您的评论,并揭示您的 .htaccess 文件所在的位置,请尝试以下操作:

    RewriteBase /wordpress/wp-content/uploads/
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^(.*) /wp-content/themes/fun&share/serve.php?filename=$1 [R,L]
    

    编辑 2: 抱歉,我没有考虑到 RewriteBase。请看下面的代码:

    RewriteEngine On
    RewriteBase /wordpress/wp-content/uploads/
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^(.*) ../themes/fun&share/serve.php?filename=$1 [R,L]
    

    .htaccess 文件必须放在您的uploads folder 中。

    【讨论】:

    • 感谢您的回复 Mike,但它不起作用...它显示内部错误:/
    • 请看我编辑的代码。如果仍然失败,请检查您的 Apache 错误日志。里面应该有更多的细节。
    • RewriteEngine On RewriteBase /wordpress/ RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^uploads\/(.*) serve.php?filename=$1 [R,L] IfModule> 这是我正在使用的代码我认为问题出在目录中(我的 .htaccess 在 /wordpress/wp-content/uploads/ 和 serve.php 在 /wordpress/wp-content/themes/fun&share/ serve.php) 还有其他建议吗?
    • 正如它所说,我为您采样的代码应该属于您的根 htaccess。我会尽快更新我的答案。
    • 迈克,我更改了代码,但当我输入 URL 时仍然得到文件。它不会重定向我。无论如何,感谢您的努力!
    【解决方案2】:

    尝试将这些规则添加到您的 /wordpress/uploads 目录中的 htaccess 文件中:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^(.*)$ /wordpress/serve.php?filename=$1 [L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多