Que signifient ces déclarations dans mon fichier .htaccess?
-
03-07-2019 - |
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]
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.