apache htaccess如何从url中删除字符串

apache htaccess如何从url中删除字符串,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,下面的链接被标记为解决方案,但它不是。这不是一个域问题。这是一个url问题,因为在域名后面的部分。 示例结构 /grid is a folder /hypergrid.php/ is a file /:80 is god knows what and needs to be gone /foreignagent is variable /ff11bc47-2deb-a55a-9531-08706d736121 is the variable value 我有一个向网站发送数据的程序。下面是来

下面的链接被标记为解决方案,但它不是。这不是一个域问题。这是一个url问题,因为在域名后面的部分。

示例结构

/grid is a folder
/hypergrid.php/ is a file
/:80 is god knows what and needs to be gone
/foreignagent is variable
/ff11bc47-2deb-a55a-9531-08706d736121 is the variable value
我有一个向网站发送数据的程序。下面是来自该程序的请求示例

我不知道为什么它会在URL中间注入一个端口,但是我不想重写这个软件。如何使用htaccess从url中删除:80

/grid/hypergrid.php/:80/foreignagent/ff11bc47-2deb-a55a-9531-08706d736121/
此url应该如下所示

/grid/hypergrid.php/foreignagent//
url的这一部分不是静态的`

foreignagent/ff11bc47-2deb-a55a-9531-08706d736121/`

像这样的方法应该会奏效:

RewriteEngine On
RewriteRule ^:80/(.*)$ /$1 [R=301,L]

这假设客户端将遵循重定向。如果不是,你可能需要一些类似于<代码> PROXPASS <代码>的代码,这在<代码> .HTAccess 中不起作用,但需要在Apache配置文件中。

你看到的是,端口位于URL的中间,我不需要替换一个我需要删除的域端口:80,它可以放在URLYEP中的任何地方。但是你不能匹配正则表达式中的端口和捕获组前后的$1吗?我不知道你的意思是什么[Sat Oct 17 12:39:26.131358 2015][core:error][pid 3288:tid 2232](20024)给定路径格式错误或包含无效字符:[client 64.31.16.122:48072]AH00127:无法将POST/grid/hypergrid.php/:80/foreignagent/ff11bc47-2deb-a55a-9531-e8706d736121/HTTP/1.1映射到fileAhh,编辑后的透视图略有不同。也许:
RewriteRule^(.*)/:80/(.*)$/$1/$2[R=301,L]
will hogan您的答案是最接近的,除了使其成为重定向外,我无法重定向。此规则能否从url中删除?您可以删除301,
RewriteRule^(.*)/:80/(.*)$/$1/$2[L]
。这不会删除它,但会从正常运行的URL返回响应。要实际更改发送到Apache的请求URL(去掉:80),您需要使用代理或重定向。