【问题标题】:Htaccess rewrite rule from repertory load sub domain urls从目录加载子域 url 中的 Htaccess 重写规则
【发布时间】:2016-05-05 22:50:40
【问题描述】:

我正在尝试为 2 个网站做点什么。主要是在 www.personal.com 然后有一个托管在另一台服务器上的 wordpress 博客可以加载到 blog.personal.com

我想用 /blog/ 架构将网址屏蔽为主站点并加载(透明)相同的子域网址

示例:www.personal.com/blog/my-first-article 将加载 blog.personal.com/my-first-article 但保留此网址在浏览器中(浏览器中的 url 会改变):

www.personal.com/blog/my-first-article

最后困难,.htaccess文件被我托管的其他网站使用,那么我不希望这些规则适用于除personal.com之外的其他域。规则应该只适用于一个域名。

有人知道怎么做吗?

【问题讨论】:

  • 为此您需要代理功能。继续阅读flag [P]“该规则应仅适用于一个域名” - 然后在其前面加上一个 RewriteCond 来检查请求的主机名。
  • 非常感谢。我阅读了有关代理标志 [P] 的信息,但不确定它是否正确。
  • 如果它们在两个不同的服务器上,这将无法工作...这两个站点必须在同一台服务器上。然后修改 WordPress 文件来处理路由。

标签: php wordpress apache .htaccess mod-rewrite


【解决方案1】:

解决了,正确的是,在 Apache VHOST 配置中:

  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^www\.personal\.com$
  RewriteCond %{REQUEST_URI} ^/blog/
  RewriteRule ^blog/(.*)$ http://blog.personal.com/$1 [P,QSA]

  ProxyPass /blog/ http://blog.personal.com/
  RewriteCond %{HTTP_REFERER} ^http://www\.personal\.com/blog/ [NC]
  RewriteCond %{REQUEST_URI} ^(/[^/]+/)
  RewriteCond %{REQUEST_URI} \.(jpg|png|css|js)$
  RewriteRule ^(.*)$ http://blog.personal.com/$1 [L,QSA,R=301]

【讨论】:

    猜你喜欢
    • 2015-08-04
    • 2012-06-11
    • 2010-09-26
    • 2011-11-21
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多