Apache 不使用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“ 这可能吗 编辑: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:
示例:
请求者转到
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的一些特定示例更新您的问题吗?在这个例子中,接收者是什么?我在我的帖子中详细阐述了一点。我的接收器是单片机。