unique .htaccess question about mod_rewrite and RewriteCond

2

Eu tenho algumas regras de reescrita como estas

RewriteRule ^dir/(.*)-something.html otherdir/file1.php?var1=val&var2=$1 [L,NC]
RewriteRule ^dir/ otherdir/file2.php?var1=val [L,NC]

dir / não é um diretório real. Tudo acima funciona como esperado.

No entanto, o usuário pode digitar algo como

mysite.com/dir/asdfasdfasdfsdf

E eles ainda são redirecionados para file2.php. Se o usuário digitar apenas lixo, eu gostaria de servir um 404.

Eu estou supondo que eu preciso de um RewiteCond que irá testar o espaço em branco após a barra e só então servir file2.php, mas não tenho certeza de como escrevê-lo.

    
por Stephen 01.04.2010 / 01:57

1 resposta

3

Eu acho que se você colocar um $ no final de dir/ ele fará o truque (note que eu não testei isso, então, por favor, experimente antes de me votar ou algo assim). O $ significa "fim da cadeia" da mesma forma que ^ significa "início da cadeia".

RewriteRule ^dir/$ otherdir/file2.php?var1=val [L,NC]

Boa sorte!

- jed

    
por 01.04.2010 / 02:01