Problemas com o htaccess múltiplas regras de reescrita

1

Eu tenho um critério abaixo

Se uma string de consulta corresponder a Microwave_Ovens text, preciso substituir por Microwave-Ovens (substituir sublinhado por hífen) em Solicitar URI.

Está funcionando como esperado para o primeiro conjunto de 3 linhas mencionadas abaixo. Eu realmente preciso fazer o mesmo para algum outro tipo (assuma Vacuum_Cleaners ) também o mesmo. Eu adicionei o segundo conjunto de 3 linhas, mas não está funcionando. Tudo o que eu especificar primeiro está funcionando apenas.

Minhas condições de reescrita & regras são as seguintes:

RewriteCond %{QUERY_STRING} ^(.*)Microwave_Ovens(.*)$
RewriteRule ^([^_]*)_+([^_]*)$ /Mr10q/$1-$2?%1Microwave-Ovens%2 [R=301,L]
RewriteRule ^([^_]*)_+(.*)$ $1-$2 [N,DPI]

RewriteCond %{QUERY_STRING} ^(.*)Vacuum_Cleaners(.*)$
RewriteRule ^([^_]*)_+([^_]*)$ /Mr10q/$1-$2?%1Vacuum-Cleaners%2 [R=301,L]
RewriteRule ^([^_]*)_+(.*)$ $1-$2 [N,DPI]

Alguém por favor pode me sugerir o que estou fazendo errado aqui

    
por Sri 20.04.2017 / 19:57

1 resposta

0
RewriteCond %{QUERY_STRING} ^(.*)Microwave_Ovens(.*)$
RewriteRule ^([^_]*)_+([^_]*)$ /Mr10q/$1-$2?%1Microwave-Ovens%2 [R=301,L]
RewriteRule ^([^_]*)_+(.*)$ $1-$2 [N,DPI]

Suas regras parecem fazer muito mais do que você afirmou na pergunta? Mas o principal problema aqui parece ser a segunda diretiva RewriteRule . As diretivas RewriteCond anteriores aplicam-se apenas à primeira diretiva RewriteRule . Portanto, o segundo RewriteRule será executado incondicionalmente e capturará qualquer solicitação que possa conter Vacuum_Cleaners .

Como você duplicou essa diretiva no segundo bloco de regras, talvez a simples remoção do primeiro seja suficiente. Por exemplo:

# 1
RewriteCond %{QUERY_STRING} ^(.*)Microwave_Ovens(.*)$
RewriteRule ^([^_]*)_+([^_]*)$ /Mr10q/$1-$2?%1Microwave-Ovens%2 [R=301,L]

# 2
RewriteCond %{QUERY_STRING} ^(.*)Vacuum_Cleaners(.*)$
RewriteRule ^([^_]*)_+([^_]*)$ /Mr10q/$1-$2?%1Vacuum-Cleaners%2 [R=301,L]

# 3
RewriteRule ^([^_]*)_+(.*)$ $1-$2 [N,DPI]
    
por 20.04.2017 / 21:57