htaccess在Wordpress中模拟子域到子目录

时间:2017-08-19 15:12:38

标签: php wordpress apache .htaccess mod-rewrite

我需要开发一个可以写入WP htaccess文件的插件,并且"模拟"子域。

我在 example.com

上安装了基本htaccess的新WP
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?example.com.com$
RewriteRule ^(/)?$ about [L]

有没有办法通过htaccess,如果我去 about.example.com ,我会看到页面 example.com/about ,而不更改网址(意思是我仍在浏览器地址栏中看到 about.example.com )?

而且,如果我去 about.example.com/category1 ,我是否有可能看到 example.com/about/category1 页面?

我尝试使用以下代码将其添加到htaccess的末尾,但它不起作用:

+ (CGFloat)getquestionLabelHeight:(NSNumber *)width text:(NSString *)text {
CGSize constraint = CGSizeMake([width floatValue], CGFLOAT_MAX);
NSStringDrawingContext *context = [[NSStringDrawingContext alloc] init];
CGSize boundingBox = [[ZUtility getAttributedText:text].string boundingRectWithSize:constraint options:NSStringDrawingUsesLineFragmentOrigin
                                                          attributes:@{NSFontAttributeName:[UIFont fontWithName:@"OpenSans" size:14]} context:context].size;
return boundingBox.height;
}

1 个答案:

答案 0 :(得分:0)

您应该可以使用.htaccess中的以下规则执行此操作:

RewirieEngine On

RewriteCond %{HTTP_HOST} ^about.example.com [OR]
RewriteCond %{HTTP_HOST} ^www.about.example.com
RewriteRule ^(.*) http://example.com/about/$1 [P] 

这样做是检查地址about.example.com,如果条件满足,则应重定向到example.com/about/....但保留原始地址。

[P]标志导致请求由mod_proxy处理,并通过代理请求处理。

但请注意,使用mod_proxy会导致安全问题:

  

在构建规则的目标URL时要小心,考虑到   允许客户端影响该集合的安全性影响   您的服务器将充当代理的URL。确保方案   URL的主机名部分是固定的,或者不允许   客户不当影响。

通常使用.htaccess,您无法从一个域转到另一个保留原始URL的域。如上所述,这可能是一场安全噩梦。但是,由于这是一个子域,因此工作。

确保在>测试之前清除缓存

<强>替代

您可以使用ProxyPass - 这将是一个更安全的选项。您可以通过Apache文档via this link.找到有关如何使用此信息的更多信息,但这需要在高于.htaccess的级别上完成。通过配置文件。

我希望这会有所帮助。