2

我想让 apache 通过直接访问“http://url.com/something:PORT”来响应格式为“http://url.com/dir/ID”的服务器请求,其中 ID 由用户,并且 PORT 由 ID 确定(它们不是相同的值)。

我已经尝试过使用“重定向”,但这只是发送一个 HTTP 重定向,我的目标是将“http://url.com/something:PORT”的包含直接提供给“http://url.com/dir” /ID”。

这可能吗?

编辑:
示例:
请求者去http://url.com/dir/ID并且没有被重定向到http://url.com/something:PORT但获得的实际内容http://url.com/something:PORT就像原始请求到这里一样。

4

2 回答 2

1

您可以尝试安装 mod_rewrite 并将以下内容放入您的 .htaccess 或 httpd.conf :

RewriteEngine On
RewriteBase /something/
RewriteRule ^(url.com/dir/*)$ http://url.com:$1 [R=301,L]

这是一个 301“永久”重定向,它还会将搜索引擎中的链接 URL 更改为您的最终地址。更多信息在这里

您可能需要更改正则表达式以适应您的情况,我不能 100% 确定您正在寻找什么结果。如果您可以提供一些用户将访问的特定 URL 的示例以及您希望他们发送到的特定 URL,我可能会为您提供更多帮助。

于 2012-10-30T14:37:34.703 回答
1

尝试在文档根目录的 htaccess 文件中添加这些规则:

RewriteEngine On
RewriteRule ^/?dir/ID$ /something:PORT [L]

如果您指的是实际位于另一台服务器上的资源something:PORT,则需要将请求发送到 mod_proxy 以便它可以为您反向代理。如果您没有打开 mod_proxy,那么您无能为力,也许可以找到一些 php 代理解决方案。

在 htaccess 中,您可以使用P标志调用 mod_proxy,例如:

RewriteEngine On
RewriteRule ^/?dir/ID$ http://something:PORT/ [L,P]
于 2012-10-30T18:20:26.820 回答