2012-03-21 62 views
3

我想重定向任何具有/ test的URL路徑爲https://localhost/test。而且,如果一個URL是/測試?用戶= 123它必須被重定向到https://localhost/test?user=123或者說如果URL /測試/ TEST_DB /用戶?ID = 123 & PWD = 123具有被重定向到https://localhost/test/user/test_db/user?id=123&pwd=123設置Apache重定向從http到https爲特定的url

所有其他任何類型的請求必須重定向到根文件夾(http://localhost/accessdenied.html)中的「訪問被拒絕」的html頁面。

如何在apache中通過RedirectMatch實現此目的。我試過類似

RedirectMatch permanent ^test/(.*)$ https://localhost/test/$1 

哪一個沒有工作。

回答

1

我不知道這是否是一個更好的ServerFault問題。

總之:
我不知道你怎麼可以用RedirectMatch做到這一點,但我知道你怎麼可以用ModRewrite做到這一點:

RewriteEngine On$ 
RewriteCond %{HTTPS} off$ 
RewriteRule ^/bla https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]$ 

這是一個非常通用的形式會工作對於任何HTTP主機(因爲我不知道關於主機的任何細節),並且將在URL的開始處重定向與bla相匹配的任何內容,並且不是已經具有參數和所有內容的Https。

+0

這並獲得成功對我來說,它回答了這個問題。我認爲這應該被@Abhishek所接受,即使它已經過了一年多了。 – ahpoblete 2013-05-02 19:55:12

0

這只是正常的我,我的Apache httpd的2.2服務器上:

RedirectMatch 301 ^(/someprefix[^/]*/.*)$ https://hostname$1