我想通过直接访问“http://url.com/something:PORT”让apache响应格式为“http://url.com/dir/ID”的服务器请求,其中ID为由用户设置,PORT由ID确定(它们不是相同的值)。
我已尝试使用“重定向”,但这只是发送一个HTTP重定向,我的目标是直接将“http://url.com/something:PORT”包含到“http:// url”。 COM /目录/ ID”。
这可能吗?
修改
例如:
请求者转到http://url.com/dir/ID
并且不会被重定向到http://url.com/something:PORT
,但会获得http://url.com/something:PORT
的实际内容,就好像原始请求是在此处一样。
答案 0 :(得分:1)
您可以尝试安装mod_rewrite并将以下内容放在.htaccess或httpd.conf中:
RewriteEngine On
RewriteBase /something/
RewriteRule ^(url.com/dir/*)$ http://url.com:$1 [R=301,L]
这是一个301'永久'重定向,它还会将搜索引擎中的链接网址更改为您的最终地址。更多信息here。
您可能需要更改Regex以适应您的情况,我不能100%确定您要查找的结果。如果您可以提供一些用户将访问的特定URL的示例以及您希望将它们发送给我的特定URL,我可以为您提供更多帮助。
答案 1 :(得分: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]