【问题标题】:How would I rewrite a directory from any domain to another directory on the same domain?如何将任何域中的目录重写到同一域上的另一个目录?
【发布时间】:2015-03-19 02:22:08
【问题描述】:

设置

我正在使用 Wordpress 多站点,并且我为每个子站点设置了自己的域。例如,我有:

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

每个示例站点都不是真正的目录,而只是重写。

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

问题

我想在他们的域中为这些网站中的每一个提供一个 real 目录,以便他们可以将文件上传到 wordpress 之外。比如:

http://example2.com/files/

我需要在 .htaccess 文件中使用哪些重写规则将路径为 sitename.com/files/ 的任何 url 重写为 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]

【问题讨论】:

    标签: wordpress apache .htaccess mod-rewrite


    【解决方案1】:

    试试这个:

    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部分,并重写到对应的子目录。

    【讨论】:

    • 谢谢!但是,只有当附加域的非 www 部分是 /files/ 时,它才应该匹配条件。其他一切都应该超越这些条件,以符合 Wordpress 重写规则。
    • 请提供实际的示例 URL。目前尚不清楚您要问什么,因为域名中永远不可能有 / 。只有url路径可以。
    猜你喜欢
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 2014-08-20
    • 2018-04-17
    • 1970-01-01
    相关资源
    最近更新 更多