Ho sollevato gran parte di questo da Wordpress, quindi qualsiasi percorso sul dominio come dire /search
o /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 cd
il 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.php
ma non la mappatura/search
aindex.php
. Andare a/
servire/index.php
come ti aspetteresti.