2012-10-30 51 views
2

我想通過直接訪問「http://url.com/something:PORT」來讓apache響應格式爲「http://url.com/dir/ID」的服務器請求, ,其中ID由用戶設置,並且PORT由ID確定(它們不是相同的值)。重定向不使用HTTP的內容

我已經嘗試過與「重定向」,但這只是發送HTTP重定向,我的目標是直接將「http://url.com/something:PORT」的包含提供給「http:// url的.com/DIR/ID」。

這可能嗎?

編輯:
例子:
請求者去http://url.com/dir/ID,不重定向到http://url.com/something:PORT但如果原來的請求是到這裏得到的http://url.com/something:PORT實際內容。

回答

1

你可以嘗試安裝了mod_rewrite,並把你的.htaccess或httpd.conf文件如下:

RewriteEngine On 
RewriteBase /something/ 
RewriteRule ^(url.com/dir/*)$ http://url.com:$1 [R=301,L] 

這是一個301「永久」重定向這也將改變搜索引擎鏈接的URL到您的最終地址。更多信息here

您可能需要更改正則表達式以適應您的情況,我不能100%確定您要查找的結果。如果您可以提供用戶將訪問的特定URL的幾個示例,並且您希望將它們發送到的特定URL可能會幫助您更多。

+0

這將送301的HTTP應答的問題是,接收器不明白這個答覆,等它不會遵循重定向網址。我希望Apache在請求「dir/ID」時返回「something:PORT」中的任何內容。 – kasperhj

+0

仍然不確定你的意思,你可以用請求/目標URL的一些具體例子來更新你的問題嗎?這種情況下的接收器是什麼? –

+0

我在文章中詳細闡述了一下。我的接收器是一個SCM。 – kasperhj

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]