2015-10-17 42 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中規定嗎? –

相關問題