2013-07-09 30 views
1

我試圖刪除cgi-bin部分之前的部分url。我希望能夠使用像www.myserver.com/SomeFunkyText/cgi-bin/....這樣的URL,並將它們代理到www.myserver.com/cgi-bin/...Apache mod_rewrite:/ SomeFunkyText/cgi-bin/... ==>/cgi-bin/

我正在使用mod_rewrite的,我的規則如下:

RewriteRule ^/(.*)/cgi-bin/(.*)$ http://www.myserver.com/cgi-bin/$2 [P,L] 

我也有ScriptAlias指令:

ScriptAlias /cgi-bin/ /var/www/myserver/cgi-bin/ 

我越來越:

您沒有權限訪問/ SomeFunkyText/CGI- bin/...在這臺服務器上。

有什麼想法?

回答

1

這個替換您的規則:

RewriteRule ^/?[^/]+/(cgi-bin/.*)$ /$1 [L,NC] 
+0

我下的cgi-bin腳本。我現在看到腳本的來源 - 這是一個很好的進展,謝謝!但它沒有執行,所以我假設ScriptAlias指令在RewriteRule之前使用URL?有什麼辦法呢? – nickb

+0

我試圖用ScriptAlias替換:ScriptAliasMatch^/?[^ /] +/cgi-bin(。*)/ var/www/myserver/cgi-bin $ 1但是沒有工作.... – nickb

+0

嘗試評論' ScriptAlias'行爲您的測試。 – anubhava