У меня есть правило переписывания в следующей форме:
RewriteRule ^foo/([a-zA-Z0-9]+)$ foo.php?arg=$1 [qsa,nc]
Он принимает URL-адреса вида /foo/bar
и заменяет их на /foo.php?arg=bar
Локально работает должным образом и работает на моем старом хосте, но я переехал на новый хост (работает под управлением Ubuntu) и ведет себя иначе
На новом хосте apache замечает, что есть foo.php, и вызывает его напрямую. Другими словами, URL вида /foo/bar
видятся как /foo.php
. Если я переименую foo.php
в foo_junk.php
и изменим правило перезаписи на
RewriteRule ^foo/([a-zA-Z0-9]+)$ foo_junk.php?arg=$1 [qsa,nc]
Тогда все это работает. Так что дело не в том, что я не включил переопределения или что мне не удалось установить mod_rewrite или что-то еще. Переписывает работу, они просто выполняются в другой точке процесса разрешения URL-адреса, чем локально.
Есть ли опция конфигурации для этого?