我需要开发一个可以写入WP htaccess文件的插件,并且"模拟"子域。
我在 example.com
上安装了基本htaccess的新WPRewriteEngine 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;
}
答案 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
的级别上完成。通过配置文件。
我希望这会有所帮助。