我想從Apache中刪除動態URI的一部分,嘗試了不同的重寫規則,但沒有得到任何地方。我能夠清理使用查詢字符串的網址,但 刪除任何東西accessdenied後,但我們需要組應用程序工作的一部分。從Apache中刪除動態查詢字符串
accessdenied?group = test & oam_res = &之後應該刪除oam_res,請幫忙。
我想從Apache中刪除動態URI的一部分,嘗試了不同的重寫規則,但沒有得到任何地方。我能夠清理使用查詢字符串的網址,但 刪除任何東西accessdenied後,但我們需要組應用程序工作的一部分。從Apache中刪除動態查詢字符串
accessdenied?group = test & oam_res = &之後應該刪除oam_res,請幫忙。
的問題是有點模糊,但我想這是要你點到正確的方向:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^([^&]*&)*oam_res=
RewriteRule ^/?accessdenied$ /accessdenied?%1 [R=301]
注意,這實現了一個外部重定向,所以它改變了URL中可見客戶端(瀏覽器)。如果您只想執行內部重寫,那麼您需要用[L]
標誌替換[R=301]
標誌。
爲了這個工作,你顯然需要在你的http服務器上安裝,加載和啓用重寫模塊。如果您想使用動態配置文件(.htaccess
),則需要使用AllowOverride
指令啓用其解釋。但是您應該始終將這些規則放置在http服務器(虛擬)主機配置中,而不是使用動態配置文件(.htaccess
樣式文件)。這些文件出了名的錯誤,很難調試,他們真的放慢了服務器。只有當你無法控制主機配置(讀取:真正便宜的主機服務提供商)或者如果你有一個依賴編寫自己的重寫規則的應用程序(這是一個明顯的安全噩夢) )。
謝謝askascha,以上規則工作。 – Rakesh