如何将目录从任何域重写到同一域上的另一个目录?

时间:2015-03-19 02:22:09

标签: wordpress apache .htaccess mod-rewrite

设置

我正在使用Wordpress Multisite,并且每个子网站都设置了自己的域名。例如,我有:

  • example.com(主要Wordpress安装)
    • example1.com
    • example2.com
    • example3.com

每个示例网站都不是真实目录,只是重写。

在这些情况下,Wordpress上传目录看起来像 http://example.com/wp-content/uploads/sites/2/ 其中 2 是博客ID。

问题

我想为这些网站中的每个网站提供一个真正的目录,他们可以将文件上传到wordpress的外部。类似的东西:

http://example2.com/files/

我需要在.htaccess文件中使用路径 sitename.com / files / to example.com / wp-content/uploads/sites/files/ <重写任何网址的重写规则强> sitename.com /

我尝试了什么

嗯,我在mod_rewrite规则上毫无价值,但是我没有运气就这样做了:

RewriteRule %{HTTP_HOST}/files/(.*) "http\:\/\/example\.com/wp-content/uploads/sites/files/%{HTTP_HOST}/$1" [L]

1 个答案:

答案 0 :(得分:0)

试试这个:

RewriteEngine on

RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+\.[^.]+(\..*)?)$ [NC]
RewriteRule ^files/?$ /wp-content/uploads/sites/files/%1/ [NC,L]

我们首先排除主域名,然后捕获附加域名的非www部分并重写到相应的子目录。