Domanda

Sono un principiante di PHP. Qualcuno può dirmi cosa fa ogni riga qui. Ho bisogno di questo? Mi sta dando errori

RewriteCond %{REQUEST_URI} /~([^/]+)/?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) /~%1/rewrite.php?p=$1&%{QUERY_STRING} [L]
RewriteCond %{REQUEST_URI} /~([^/]+)/?
RewriteRule ^index\.php?(.*)$ /~%1/rewrite.php?p=%1&%{QUERY_STRING} [L]
#there is no ~ character in the URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) ./rewrite.php?p=$1&%{QUERY_STRING} [L]
RewriteRule ^index\.php?(.*)$ ./rewrite.php?p=$1&%{QUERY_STRING} [L]
#WJ-180 fix
RewriteRule ^resume\.php?(.*)$ ./rewrite.php?p=resume\.php$1&%{QUERY_STRING} [L]
È stato utile?

Soluzione

La semplice risposta: queste dichiarazioni riscrivono ogni richiesta in un file rewrite.php .

La risposta più completa: le direttive RewriteCond e RewriteRule provengono dalle modulo Apache mod_rewrite e fornisce un meccanismo di riscrittura degli URL basato su regole.

Sembra che queste regole intendano riscrivere ogni richiesta in un file rewrite.php , in una directory specifica ( / ~ foobar /rewrite.php ) o nella radice ( /rewrite.php ).

Altri suggerimenti

Se sei nuovo, leggi http: //httpd.apache. org / docs / 1.3 / mod / mod_rewrite.html , è spiegato molto bene.

p.s. Il tuo titolo " Cosa significano queste dichiarazioni nel mio file .htaccess di PHP? " non è corretto, .htacces non è un file php.

Dicono

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

" Utilizza la seguente regola solo se la richiesta non corrisponde a un file o directory esistente. "

Quelle sono mod_rewrite .

È una regola mod_rewrite di Apache. A meno che non si stia utilizzando una sorta di framework, probabilmente non è necessario. Vedi Apache mod_rewrite per maggiori informazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top