2

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

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

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

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

4

2 回答 2

2

您可以.htaccess为此使用 WordPress 根文件,也可以在上传目录中创建一个。我建议坚持使用您已经用于 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.

于 2013-04-15T22:26:50.447 回答
1

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

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ /wordpress/serve.php?filename=$1 [L]
于 2013-04-16T02:11:55.657 回答