保护媒体文件Wordpress多站点

时间:2013-12-20 19:14:33

标签: wordpress .htaccess mod-rewrite media

我正在使用带有Wordpress的多站点作为专用网络,使用Private Only插件。
但是我的wp内容地图中的媒体文件没有受到保护并被Google编入索引,但我拒绝索引。

我正在搜索一段代码,该代码会重定向通过Google访问媒体文件时未登录的人。

我的域名结构如下:

https://intranet.website.com/subsite1/
https://intranet.website.com/subsite2/

我在我的.htaccess中尝试了以下代码,但它确实有效,但它破坏了我的子网站上的图像。

RewriteCond %{HTTP_HOST} ^intranet\.website\.com 
RewriteCond %{SCRIPT_FILENAME} ^([_0-9a-zA-Z-]+/)?files/(.+) 
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) - [L]

当前.htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^intranet\.website\.com$
RewriteRule /files/.+?\.(pdf|docx|xls|ppt)$ - [NC,F]

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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

# directory browsing
Options All -Indexes

1 个答案:

答案 0 :(得分:0)

您可以使用此规则:

RewriteCond %{HTTP_HOST} ^intranet\.website\.com$
RewriteRule /files/.+?\.(pdf|docx|xls|ppt)$ - [NC,F]

完整.htaccess:

RewriteEngine On
RewriteBase /

RewriteRule (^|/)files/.+?\.(pdf|docx|xls|ppt)$ - [NC,F]

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).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

# directory browsing
Options All -Indexes