【发布时间】:2017-05-17 15:01:32
【问题描述】:
我在服务器上安装了 WordPress MU,并使用了一些 Mod Deflate 和缓存文件以及 .htaccess 文件中的一些其他小修改,当我遇到客户端的一些修改时,我注意到在他的服务器上的图像是从我的服务器提供。
服务器配置:Plesk/CentOS - Linux 主机
经过全面研究后,我尝试将所有可用代码放在 StackOverflow 文章和其他教程和网站中,但找不到哪里做错了,但它不起作用。
.htaccess 与热链接正则表达式和其他重写规则
RewriteEngine On
RewriteRule ^index\.php$ - [L]
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
<Files wp-config.php>
order allow,deny
deny from all
</Files>
<Files .htaccess>
order allow,deny
deny from all
</Files>
<Files xmlrpc.php>
Order allow,deny
Deny from all
</Files>
# Wordfence WAF
<Files ".user.ini">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
如果我清空 .htaccess 并保留以下代码,它就可以工作。
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
我做错了什么?
【问题讨论】:
-
将此规则移动到第一行
RewriteEngine On下方并使其生效。 -
你会得到第 7 条规则的 index.php
-
@anubhava 当我从第二行添加这些规则时,我看到它的工作正常并且工作正常。您会详细说明可能的情况吗?在单独的答案中而不是评论中
标签: php apache .htaccess mod-rewrite hotlinking