2016-03-14 133 views
1

我的網址是這樣的:重寫的.htaccess - 部分URL的

www.mydomain.com/?load=/browse 
www.mydomain.com/?load=/files 
www.mydomain.com/?load=/search 

如何可以將它們改寫爲

www.mydomain.com/browse 
www.mydomain.com/files 
www.mydomain.com/search 

我試着用這些規則

RewriteEngine On 
RewriteBase/
RewriteRule ^/?load=/(.*)$ /$1 [R,L] 

但沒有運氣。

你能幫我嗎?

回答

0

您可以使用下列規則:

RewriteEngine on 

#1--Redirect "/?load=/foo" to "/foo"--# 
RewriteCond %{THE_REQUEST} /\?load=/([^\s&]+) [NC] 
RewriteRule^/%1? [NE,L,R] 
#2--Rewrite "/foo" to "/?load=/foo--# 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)/?$ /?load=/$1 [NC,L,QSA] 
+0

它做工精良的URL的第一級,但第二次給我404 所以,如果我有 mydomain.com/?load=/browse/文件 使用您發佈重寫規則後,它重定向到 mydomain.com/browse/documents 但它給了我沒有找到/ 404 任何想法? 感謝您的幫助 – ah0dev

+0

是的,這是因爲最後一條規則中的正則表達式模式,它忽略了**/**的請求,我改變了模式以適應全部,請參閱編輯 – starkeen

+0

啊,優秀的,我很感激幫助和解釋。如果我只是爲了一點點時間而煩惱你。我有兩個我也想修復的錯誤。 1.您發佈的規則將「[」和「]」字符翻譯爲「%5b」。我想保留它們爲「[」。 2.將「_」(下劃線)重寫爲「 - 」(連字符)。如果它不是太麻煩。 Tnx – ah0dev