2014-02-22 135 views
1

嗨我已經嘗試了一切,找不到解決方案。 當用戶訪問這個URLRewriteRule刪除所有斜槓

我希望它是重寫(不使用重定向)

我怎麼去除'/'? 您的幫助非常感謝。

+0

由於它的工作 是的,它總是有3條斜線,但我只包括一個查詢參數有2人QS =和d = 這裏是一個真正的呼叫 http://www.mtdomain.com/B/13/B0/BD62CB5382479EFE5EE122BE6FB.jpg?pid=5623&qs=yvFwvef%26v%7dvlbr%2cdmzDx%7c%7d1%7cskbxzunetvxg1lst%27yzoFWvefYw%7bihn ®%26Rojpdngo%29Wpuj%2cgnwDCjzwnv%27Czheuiz!Rggn%24Iz%25_r%7e2%27Gwup%29%28%3e%3a3%3f87%24Vsiku%29Sumnth%29Xvef%7f%24&d = www.sodastreamusa.com 當我通過在其他查詢字符串中停止工作。 循環示例好像進入了一個無限循環我是否需要一個[L]來阻止它? –

回答

2

此規則嘗試(您的htaccess必須位於你的文檔根目錄文件夾)

RewriteCond %{QUERY_STRING} ^pid=([0-9]+)$ 
RewriteRule ^/?([^/]+)/([^/]+)/([^/]+)/([^/]+)\.jpg$ /$1$2$3$4.jpg?pid=%1 [L] 

編輯:此代碼將只與(在查詢字符串3個斜線和pid)網址,就像你的榜樣工作

EDIT2:簡化查詢字符串,如果您有多個PARAMS(也許在不同的順序),我們不需要RewriteCond了,但QSA標誌,而不是

RewriteRule ^/?([^/]+)/([^/]+)/([^/]+)/([^/]+)\.jpg$ /$1$2$3$4.jpg [L,QSA] 
+0

這隻會刪除前3個斜槓。如果有更多,那些會留下。 –

+0

我僅以問題中的網址爲例。你可能是對的 - 我不知道,我也不想讓你的答案完全一致 - 但是在不同的URL中可能有很多斜線需要刪除,不僅僅是3. –

+0

你對了。我回答關於OP的例子。讓我們來看看它是什麼,也許他的網址中有更多的斜槓 –

1

如果該規則應該刪除任何數量的斜槓,而不僅僅是一個固定的數字,您必須創建一個循環。爲此,您可以使用\[N\] flag,這將導致重寫過程從當前URL開始。這樣做時要小心,做了錯事時,這可能會導致無限循環)然而

RewriteRule ^/?(.*)/(.*) $1$2 [N] 

應該工作。你可以測試它with this online tool

[編輯]:完全重寫 - 我忘了[N]標誌;)

+0

感謝您鏈接該工具。這非常有用! – smdrager