Sua webroot não é /
(certo?), portanto, é correto que -d
não tenha sido atingido. Ele está tentando corresponder /wpsa/
ao sistema de arquivos, literalmente - não em relação à webroot.
A razão pela qual você está fornecendo /wpsa/
como sua entrada de string em vez de /path/to/webroot/wpsa
, o que funcionaria como esperado, é que você está usando %{REQUEST_FILENAME}
no contexto errado.
Quando %{REQUEST_FILENAME}
é usado em um contexto em que o mapeamento do sistema de arquivos já está pronto, como em um bloco <Directory>
ou .htaccess
, o caminho completo é retornado e -d
funcionará como você espera.
REQUEST_FILENAME
The full local filesystem path to the file or script matching the request, if this has already been determined by the server at the time REQUEST_FILENAME is referenced. Otherwise, such as when used in virtual host context, the same value as REQUEST_URI.
Parece que você está usando em um contexto <VirtualHost>
ou <Location>
, o que o torna funcionalmente idêntico a %{REQUEST_URI}
. Se você quiser mantê-lo nesse contexto, tente:
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d