2016-01-29 11 views
1

我下面.htaccess友好的URL工作,但沒有改寫

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    # Rewrite www.site.com.br/usuarios.php?user=Igor&area=inicio to 
    # www.site.com.br/Igor/inicio 
    RewriteCond %{THE_REQUEST} /usuarios\.php\?user=([^&\s]+)&area=([^&\s]+) [NC] 
    RewriteRule^/%1/%2? [R=302,L,NE] 

    # Rewrite www.site.com.br/usuarios.php?user=Igor to 
    # www.site.com.br/Igor if not have the second parameter 
    RewriteCond %{THE_REQUEST} /usuarios\.php\?user=([^&\s]+) [NC] 
    RewriteRule^/%1? [R=302,L,NE] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteRule ^((?!usuarios/|posts/).*)$ usuarios.php?q=$1 [L,NC] 

    # Rewrite www.site.com.br/posts.php?post=HelloWorld to 
    # www.site.com.br/posts/HelloWorld 
    RewriteRule ^posts/(.*) posts.php?post=$1 [L,QSA] 
</IfModule> 

我的問題是在最後RewriteRuleRewriteRule ^posts/(.*) posts.php?post=$1 [L,QSA]。如果我訪問www.site.com.br/posts/HelloWorld它可以很好地工作,如果我訪問www.site.com.br/posts.php?post=HelloWorld也可以工作,但不能改寫爲www.site.com.br/posts/HelloWorld

如何做到這一點?

回答

1

您需要一個或多個重定向規則

<IfModule mod_rewrite.c> 
    Options -MultiView 
    RewriteEngine On 

    # Rewrite www.site.com.br/usuarios.php?user=Igor&area=inicio to 
    # www.site.com.br/Igor/inicio 
    RewriteCond %{THE_REQUEST} /usuarios\.php\?user=([^&\s]+)&area=([^&\s]+) [NC] 
    RewriteRule^/%1/%2? [R=302,L,NE] 

    RewriteCond %{THE_REQUEST} /posts\.php\?post=([^&\s]+) [NC] 
    RewriteRule^/post/%1? [R=302,L,NE] 

    # Rewrite www.site.com.br/usuarios.php?user=Igor to 
    # www.site.com.br/Igor if not have the second parameter 
    RewriteCond %{THE_REQUEST} /usuarios\.php\?user=([^&\s]+) [NC] 
    RewriteRule^/%1? [R=302,L,NE] 

    # Rewrite www.site.com.br/posts.php?post=HelloWorld to 
    # www.site.com.br/posts/HelloWorld 
    RewriteRule ^posts/(.*) posts.php?post=$1 [L,QSA] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^((?!usuarios/|posts/).*)$ usuarios.php?q=$1 [L,NC] 

</IfModule> 
+1

快捷,完善的,謝謝! – Igor