使用 .htaccess 更改端口和主机 [关闭]

Posted

技术标签:

【中文标题】使用 .htaccess 更改端口和主机 [关闭]【英文标题】:Change port and host using .htaccess [closed] 【发布时间】:2013-03-27 03:09:32 【问题描述】:

我正在尝试使用mod_rewrite 基本上将子域上的端口转发到另一个 IP 上的另一个端口。

像这样:

sub.website.com:2000 --> 123.45.67.891:3000 

如何使用带有mod_rewrite.htaccess 文件来实现这一点?

我尝试了以下方法但无济于事:

RewriteCond %HTTP_HOST ^sub.website.com$ [NC]
RewriteCond %SERVER_PORT ^2000$
RewriteRule ^(.*)$ https://123.45.67.891:3000/$1 [L,R=302]

【问题讨论】:

规则看起来很简单。 “一事无成”是什么意思?你有什么错误吗?来自sub.website.com 的页面是否显示?还有什么? 它根本没有正确转发端口。 【参考方案1】:

根据您的规则,我发现HTTP_HOST 包含端口号。所以规则应该看起来像

RewriteCond %HTTP_HOST ^sub.website.com:2000$ [NC]
RewriteCond %SERVER_PORT ^2000$
RewriteRule ^(.*)$ https://123.45.67.891:3000/$1 [L,R=302]

如果你想单独测试服务器名称,你可以使用%SERVER_NAME @faa 在 cmets 中建议

RewriteCond %SERVER_NAME ^sub.website.com$ [NC]

【讨论】:

感谢您的回复,仅针对服务器名称进行的测试可以正常工作,但尝试指定端口却无法正常工作。我在这里尝试使用端口 2000,但 Safari 只是告诉我页面所在的服务器没有响应。这是我的.htaccess 文件:pastebin.com/aqjwgZjb @Joshua 那么虚拟主机没有设置为监听 2000 端口。您必须在虚拟主机配置中输入 Listen 2000<VirtualHost *:2000>...</VirtualHost><VirtualHost 1.2.3.4:2000>...</VirtualHost>

以上是关于使用 .htaccess 更改端口和主机 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

是否可以更改 htaccess 中的 $_SERVER['HTTP_HOST'] ? [关闭]

如何在同一(但正在更改)IP 地址上处理 2 个不同主机的 ssh 主机密钥验证? [关闭]

根据 .htaccess 中的域/子域更改 DirectoryIndex

如何使用本地主机的 .htaccess 从 URL 中删除目录名称

将域重定向到另一个域并更改 url [关闭]

我可以使用/ etc / hosts映射主机名*和*端口吗? [关闭]