¿Qué significan estas declaraciones en mi archivo .htaccess?
-
03-07-2019 - |
Pregunta
Soy nuevo en PHP. ¿Alguien puede decirme qué hace cada línea aquí? ¿Necesito esto? Me está dando errores.
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]
Solución
La respuesta simple: estas declaraciones reescriben cada solicitud en un archivo rewrite.php
.
La respuesta más completa: las directivas RewriteCond
y RewriteRule
son de las directivas Apache module mod_rewrite y proporciona un mecanismo de reescritura de URL basado en reglas.
Parece que estas reglas están destinadas a volver a escribir cada solicitud en un archivo rewrite.php
, ya sea en un directorio específico ( / ~
foobar /rewrite.php
) o en la raíz ( /rewrite.php
).
Otros consejos
Si eres nuevo, lee http: //httpd.apache. org / docs / 1.3 / mod / mod_rewrite.html , se explica muy bien.
p.s. Su título " ¿Qué significan estas declaraciones en mi archivo PHP .htaccess? " es incorrecto, .htacces no es un archivo php.
Estos dicen
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
" Solo use la siguiente regla si la solicitud no coincide con un archivo o directorio existente. "
Esas son mod_rewrite entradas de configuración.
Es una regla de Apache mod_rewrite. A menos que esté utilizando algún tipo de marco, probablemente no lo necesite. Ver Apache mod_rewrite para más información.