2015-10-17 43 views
-1

下面的链接被标记为一个解决方案,但这不是一个域问题,这是一个url问题,因为在域名之后的部分。 Apache RewriteRule to remove port on any domain nameapache htaccess我如何从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中间注入一个端口,但我不想重写软件。我如何删除:80使用htaccess的URL?

/grid/hypergrid.php/:80/foreignagent/ff11bc47-2deb-a55a-9531-08706d736121/ 

这个网址看起来应该像

/grid/hypergrid.php/foreignagent// 

网址的这部分也不是一成不变的`

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

你见过[http://stackoverflow.com/questions/9611521/apache-rewriterule-to-remove-port-on-any-domain-name](http://stackoverflow.com/questions/9611521/ apache-rewriterule-remove-port-on-any-domain-name) –

+0

问题是端口在url中间我不需要替换我需要删除的域端口:80从任何地方它可能被放在网址 –

+0

是的。但是,你能不能匹配正则表达式中的端口和$ 1捕获的组之前和之后? –

回答

0

像这样的东西应该工作:

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

这是假设客户将遵循重定向CTS。如果不是,你可能需要类似ProxyPass,这将不会在.htaccess工作,但需要在Apache配置文件。

+0

[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映射到文件 –

+0

啊,编辑后有点不同。也许:'重写规则^(。*)/:80 /(.*)$/ $ 1/$ 2 [R = 301,L]' –

+0

将会使你的答案是最接近的,除非使它成为重定向,我不能重定向。这个规则可以从url中规定吗? –

相关问题