Redirecionar URL exato

1

Estou usando as seguintes diretivas em .htaccess para redirecionar apenas example.com/script-dir/index.php (com www e sem) para example.com/index.php. Mas também redireciona example.com/script-dir/index.php?page=faq e outras páginas.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^script\-dir\/index\.php$ "http\:\/\/example\.com\/" [R=301,L]

O que devo fazer para redirecionar apenas essa única página?

    
por Mkgl 03.01.2015 / 18:44

2 respostas

2

A string de consulta ( ?page=faq ) não faz parte do URL que é testado no RewriteRule, então você precisa adicionar uma condição separada para testá-lo:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^script-dir/index\.php$ http://example.com/ [R=301,L]

Não sei por que outras páginas seriam redirecionadas.

    
por 03.01.2015 / 19:19
0

Você pode RewriteCond com base em QUERY_STRING vazio, seguindo a mesma abordagem da outra resposta: link . Além disso, talvez você prefira a correspondência exata, sem depender do RegExp, conforme explicado nesta outra resposta: link

    
por 03.01.2015 / 19:36