Apache 不使用HTTP重定向内容

Apache 不使用HTTP重定向内容,apache,.htaccess,Apache,.htaccess,我希望apache响应服务器请求的格式为“http://url.com/dir/ID“通过直接访问”http://url.com/something:PORT,其中ID由用户设置,端口由ID确定(它们的值不同) 我尝试过使用“重定向”,但这只是发送一个HTTP重定向,我的目标是直接向http://url.com/something:PORT“到”http://url.com/dir/ID“ 这可能吗 编辑: 示例: 请求者转到http://url.com/dir/ID并且不会被重定向到http:

我希望apache响应服务器请求的格式为“http://url.com/dir/ID“通过直接访问”http://url.com/something:PORT,其中ID由用户设置,端口由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
就像原始请求在这里一样。

您可以尝试安装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的示例,我可能能为您提供更多帮助。

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

RewriteEngine On
RewriteRule ^/?dir/ID$ /something:PORT [L]
如果您指的是实际位于另一台服务器上的
something:PORT
,则需要将请求发送到mod_proxy,以便它可以为您反向代理。如果您没有打开mod_代理,那么您就无能为力,也许可以找到一些php代理解决方案

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

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

这将发送301的HTTP回复。问题是,接收者不理解这个回复,因此它不会遵循重定向url。我希望Apache在请求“dir/ID”时返回“something:PORT”中的任何内容。仍然不确定您的意思,您能用请求/目标URL的一些特定示例更新您的问题吗?在这个例子中,接收者是什么?我在我的帖子中详细阐述了一点。我的接收器是单片机。