htaccess com vários parâmetros

1
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !\.php$

RewriteRule ^(.*)/(.*)/(.*)$ $1.php?Action=$2&id=$3
RewriteRule ^(.*)/(.*)$ $1.php?Action=$2
RewriteRule ^(.*)$ $1.php

Aqui está o meu .htaccess . No entanto, apenas o primeiro RewriteRule funciona. Se eu comentar outras regras, as outras saíram bem, mas não funcionam juntas. O que eu quero é o URL limpo com vários parâmetros.

Eu não tenho nenhum indício desse problema. Eu pesquisei muito no Google e toda a informação que encontrei diz o mesmo que o meu código.

    
por user1942626 09.08.2013 / 16:22

2 respostas

1

Você precisa encadear seu RewriteRules usando o sinalizador C, conforme explicado na página ServerFault Tudo o que você sempre quis saber sobre as regras do Mod_Rewrite, mas tinha medo de perguntar?

No seu caso, isso funcionaria:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !\.php$

RewriteRule ^(.*)/(.*)/(.*)$ $1.php?Action=$2&id=$3 [C]
RewriteRule ^(.*)/(.*)$ $1.php?Action=$2 [C]
RewriteRule ^(.*)$ $1.php
    
por 09.08.2013 / 16:36
0
Options -MultiViews 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !\.php$ 
RewriteRule ^(.*)/(.*)/(.*)$ /api/$1.php?Action=$2&id=$3 [L] 
RewriteRule ^(.*)/(.*)$ /api/$1.php?Action=$2 [L]

Com a bandeira [L], meu htaccess começou a funcionar bem.

    
por 11.08.2013 / 20:34