admin管理员组文章数量:1316408
Talking about this well known solution:
Github
Original discussion
I'm looking for a straightforward way working also on a Nginx installed WP and not only on Apache ones.
Is there any other code-based approach you would recommend, that works fine on any server environment?
So far, after testing various plugins from the official repository on a Nginx installed WP website, I also discovered that a bunch of them just fail when the web server is not accepting htaccess rules.
In my opinion, the best would be using the same approach for both:
setting a htaccess / nginx web server rule controlling any file request made toward a specific /uploads subfolder. The rule I found working well on my Apache based WP is the following:
RewriteCond %{REQUEST_URI} ^.*wp-content/uploads/restricted/.*
RewriteRule ^wp-content/uploads/(restricted/.*)$ dl.php?file=$1 [QSA,L]
I found - almost - the same rule for a Nginx environment, but despite my tests I'm still not able to make it work on a subfolder, so the following is just for the whole /uploads folder, not recommended:
location ~* /(?:uploads|files)/* {
rewrite /wp-content/uploads/(.*)$ /dl.php?file=$1;
}
Furthermore, as long as many clients of mines have their installations on a shared hosting, asking the provider to set a nginx rule for a single website is a lost cause most of the times.
Talking about this well known solution:
Github
Original discussion
I'm looking for a straightforward way working also on a Nginx installed WP and not only on Apache ones.
Is there any other code-based approach you would recommend, that works fine on any server environment?
So far, after testing various plugins from the official repository on a Nginx installed WP website, I also discovered that a bunch of them just fail when the web server is not accepting htaccess rules.
In my opinion, the best would be using the same approach for both:
setting a htaccess / nginx web server rule controlling any file request made toward a specific /uploads subfolder. The rule I found working well on my Apache based WP is the following:
RewriteCond %{REQUEST_URI} ^.*wp-content/uploads/restricted/.*
RewriteRule ^wp-content/uploads/(restricted/.*)$ dl.php?file=$1 [QSA,L]
I found - almost - the same rule for a Nginx environment, but despite my tests I'm still not able to make it work on a subfolder, so the following is just for the whole /uploads folder, not recommended:
location ~* /(?:uploads|files)/* {
rewrite /wp-content/uploads/(.*)$ /dl.php?file=$1;
}
Furthermore, as long as many clients of mines have their installations on a shared hosting, asking the provider to set a nginx rule for a single website is a lost cause most of the times.
Share Improve this question edited Nov 10, 2020 at 11:40 PatrizioRD asked Nov 10, 2020 at 10:41 PatrizioRDPatrizioRD 114 bronze badges 2- Plugin recommendations are off topic here. You might be able to recover this question by editing it to remove the references to purchases and plugins then voting to reopen. If you're looking for a recommendation though you will need to go elsewhere – Tom J Nowell ♦ Commented Nov 10, 2020 at 11:28
- Plugin recommendetions and purchase removed @TomJNowell – PatrizioRD Commented Nov 10, 2020 at 12:14
1 Answer
Reset to default 1The nginx equivalent of
RewriteCond %{REQUEST_URI} ^.*wp-content/uploads/restricted/.*
RewriteRule ^wp-content/uploads/(restricted/.*)$ dl.php?file=$1 [QSA,L]
will be the
location ~ ^/wp-content/uploads/(?<file>restricted/.*) {
rewrite ^ /dl.php?file=$file last;
}
If you want to apply this to several folders under /wp-content/uploads
, use
location ~ ^/wp-content/uploads/(?<file>(?:restricted1|restricted2|restricted3)/.*) {
rewrite ^ /dl.php?file=$file last;
}
I don't think there can be any other solution for nginx but to alter its configuration, after all the fact it has all the rules compiled at the startup instead of checking every single folder for .htaccess
on every request is one of the reasons that it so outperforms Apache.
本文标签:
版权声明:本文标题:Restrict uploaded files into a custom folder to logged in users by htaccess: looking for Nginx - not only Apache - solution 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742002330a2411263.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论