2016-03-14 100 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