Regra múltipla Apache reescreve

3

Estou tentando configurar uma hierarquia com cinco níveis de profundidade com mod_rewrite . Isto é o que eu juntei neste momento. Funciona nos dois últimos níveis (a primeira e a segunda regra), mas não depois disso. Qualquer ajuda seria bem apreciada.

RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /mr/index.php?product_group=$1&product_family=$2&product_category=$3&product_sub_category=$4&product=$5 [C]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /mr/index.php?product_group=$1&product_family=$2&product_category=$3&product_sub_category=$4 [C] 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /mr/index.php?product_group=$1&product_family=$2&product_category=$3 [C]
RewriteRule ^([^/]*)/([^/]*)$ /mr/index.php?product_group=$1&product_family=$2 [C] 
RewriteRule ^([^/]*)$ /mr/index.php?product_group=$1 [L]

Eu não sou um técnico de servidor. Eu sou um desenvolvedor e simplesmente não consigo descobrir isso. Cada uma dessas regras funciona bem sozinha. Preciso que as regras funcionem de um nível para cinco e para cada passo intermediário. Eu preciso de uma navegação de estilo de drill down que seja SEO amigável.

    
por xxx 13.11.2013 / 17:59

1 resposta

2

Parece que você encadeou todas as regras junto com o [C] flag. Consulte a documentação para obter uma explicação dos seus significados. Você provavelmente deseja [L] para "last".

Também é importante notar que as regras serão executadas até o URL não mudar mais; Assim, sua segunda à última regra provavelmente criará um loop de regravação, a menos que você tenha uma regra antes, semelhante a esta:

RewriteRule ^/mr/index.php$ - [L]

Editar: Para maior clareza, isso é o que eu sugeriria como ponto de partida. Você pode obter algumas informações do registro fornecido por mod_rewrite .

RewriteRule ^mr/index.php$ - [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/?$ /mr/index.php?product_group=$1&product_family=$2&product_category=$3&product_sub_category=$4&product=$5 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/?$         /mr/index.php?product_group=$1&product_family=$2&product_category=$3&product_sub_category=$4 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/?$                 /mr/index.php?product_group=$1&product_family=$2&product_category=$3 [L]
RewriteRule ^([^/]*)/([^/]*)/?$                         /mr/index.php?product_group=$1&product_family=$2 [L]
RewriteRule ^([^/]*)/?$                                 /mr/index.php?product_group=$1 [L]
    
por 13.11.2013 / 21:31