2017-05-17 13 views
1

私はWordPress MUをサーバにインストールしていて、.htaccessファイルのいくつかのMod DeflateとCachingを使用しています。自分のサーバー上のイメージは私のサーバーから提供されます。ホットリンクの保護が.htaccessで動作しない

サーバー設定:Pleskの/ CentOSの - Linuxは、私はStackOverflowの記事や他のチュートリアルやサイトで利用可能なすべてのコードを配置してみましたが、間違ってやっているものを見つけることはできませんが、それは働いていない、完全な調査の後

ホスティング。ホットリンクの正規表現や他の書き換えルール

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私は私の.htaccessファイルを空にして、ちょうどそれが動作する次のコードを保持する場合。

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC] 
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L] 

私が間違って何をしているのですか?

+1

移動ちょうど最初の 'RewriteEngine on'の行の下に、このルールおよびそれを動作させるために。 – anubhava

+0

あなたは7番目のルールでindex.phpを取得します – Deadooshka

+0

@anubhava 2行目からこれらのルールを追加してもうまく動作します。あなたは何が事実かもしれないの精巧なビットですか?コメントではなく別の答え – Maqk

答えて

1

他のすべてのルールの上にこれを保つ必要があります。HTTP_REFERER問題は、すべてのURIをindex.phpに書き換えるルールがあることです。その規則のためにRewriteRule \.(jpg|jpeg|png|gif)$が失敗します。

コンプリート.htaccessファイル:

RewriteEngine On 

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC] 
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L] 

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> 
関連する問題