我正在使用wordpress,而我正在使用.htaccess,但我并不了解其功能。
方案如下:
当用户尝试从上传目录(例如:http://[localhost]/wordpress/uploads/video.mp4
)访问文件时,他被重定向到php页面,该页面决定用户是否有权下载/查看文件(例如,重定向到以下内容) :http://[localhost]/wordpress/serve.php?filename=video.mp4
)。
有谁知道我应该怎么处理.htaccess?
.htaccess文件应放在哪个目录中?
答案 0 :(得分:1)
您可以使用WordPress根.htaccess
文件,也可以在uploads目录中创建一个。我建议你坚持使用你已经用于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
。
答案 1 :(得分:1)
尝试将这些规则添加到/wordpress/uploads
目录中的htaccess文件中:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ /wordpress/serve.php?filename=$1 [L]