Question

Je suis novice en PHP. Quelqu'un peut-il me dire ce que chaque ligne fait ici. Est-ce que j'ai besoin de ça? Cela me donne des erreurs

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]
Était-ce utile?

La solution

La réponse simple: ces déclarations réécrivent chaque demande dans un fichier rewrite.php .

La réponse la plus complète: les directives RewriteCond et RewriteRule proviennent de module Apache mod_rewrite et fournit un mécanisme de réécriture d'URL basé sur des règles.

Il semble que ces règles visent à réécrire chaque requête dans un fichier rewrite.php , soit dans un répertoire spécifique ( / ~ foobar /rewrite.php ) ou à la racine ( /rewrite.php ).

Autres conseils

Si vous êtes nouveau, veuillez lire http: //httpd.apache. org / docs / 1.3 / mod / mod_rewrite.html , c'est très bien expliqué.

p.s. Votre titre "Que signifient ces déclarations dans mon fichier .htaccess PHP?" est incorrect, .htacces n'est pas un fichier php.

Ceux-ci disent

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

"N'utilisez la règle suivante que si la demande ne correspond pas à un fichier ou à un répertoire existant."

Il s'agit des mod_rewrite .

C’est une règle Apache mod_rewrite. Sauf si vous utilisez une sorte de framework, vous n'en avez probablement pas besoin. Voir Apache mod_rewrite pour plus d'informations.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top