Ho sollevato gran parte di questo da Wordpress, quindi qualsiasi percorso sul dominio come dire /searcho /listè diretto a /index.php. Bene che funziona.
Tuttavia, non dovrebbe farlo se il file richiesto esiste nella radice del documento . Quindi, se chiedo /exists.php, dovrebbe eseguire quello script. Invece sta ignorando i file sul filesystem e continua a servire index.php.
<VirtualHost *:80>
DocumentRoot /home/sites/dev
ServerName dev.vbox
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php
ErrorLog /var/log/apache2/dev.error.log
</VirtualHost>
Ho esaminato la documentazione di mod_rewrite e vari risultati di ricerca di Google, ma non vedo nulla di sbagliato nelle mie condizioni di riscrittura. Se il nome file richiesto è un file o una directory, non reindirizzare a /index.php.
Ho cdil root del documento e elencato il contenuto di quella directory, il file che sto richiedendo esiste. Il mio registro di accesso di Apache contiene voci per /exists.php.
La radice del documento è una directory montata che vive sul mio Mac e la VM che serve la richiesta è l'installazione di Ubuntu.
%{LA-U:REQUEST_FILENAME}, esso agisce in sostanza come semod_rewriteè spento, che serveexists.phpma non la mappatura/searchaindex.php. Andare a/servire/index.phpcome ti aspetteresti.