El .htaccess es un archivo de configuración distribuido, y es la forma en que Apache maneja los cambios de configuración en cada directorio.
WordPress utiliza este archivo para manipular la forma en que Apache sirve los archivos de su directorio raíz, y sus subdirectorios. Más notablemente, WP modifica este archivo para ser capaz de manejar bonitos permalinks.
Esta página se puede utilizar para restaurar un archivo .htaccess corrupto (por ejemplo. un plugin que se comporta mal).
Basic WP # Basic WP
# BEGIN WordPressRewriteEngine OnRewriteRule .* - RewriteBase /RewriteRule ^index\.php$ - RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php # END WordPress
Top
Multisite # Multisite
WordPress 3.5 y superior # WordPress 3.5 y superiores
Si has activado Multisite en WordPress 3.5 o posterior, utiliza uno de estos.
Ejemplo de subcarpeta
RewriteEngine OnRewriteRule .* - RewriteBase /RewriteRule ^index\.php$ - # add a trailing slash to /wp-adminRewriteRule ^(+/)?wp-admin$ $1wp-admin/ RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ - RewriteRule ^(+/)?(wp-(content|admin|includes).*) $2 RewriteRule ^(+/)?(.*\.php)$ $2 RewriteRule . index.php
Ejemplo de subdominio
RewriteEngine OnRewriteRule .* - RewriteBase /RewriteRule ^index\.php$ - # add a trailing slash to /wp-adminRewriteRule ^wp-admin$ wp-admin/ RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ - RewriteRule ^(wp-(content|admin|includes).*) $1 RewriteRule ^(.*\.php)$ $1 RewriteRule . index.php
Top
WordPress 3.4 e inferior # WordPress 3.4 e inferior
Si originalmente instalaste WordPress con 3.4 o anterior y activaste Multisite entonces, necesitas usar uno de estos:
Ejemplo de subcarpeta
WordPress 3.0 hasta 3.4.2
# BEGIN WordPressRewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - # uploaded filesRewriteRule ^(+/)?files/(.+) wp-includes/ms-files.php?file=$2 # add a trailing slash to /wp-adminRewriteRule ^(+/)?wp-admin$ $1wp-admin/ RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ - RewriteRule ^+/(wp-(content|admin|includes).*) $1 RewriteRule ^+/(.*\.php)$ $1 RewriteRule . index.php # END WordPress
Ejemplo de subdominio
# BEGIN WordPressRewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - # uploaded filesRewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ - RewriteRule . index.php # END WordPress
Top
Ejemplos generales # General. Ejemplos
Top
Opciones # Opciones
Cualquier opción precedida por un + se añade a las opciones actualmente vigentes, y cualquier opción precedida por un – se elimina de las opciones actualmente en vigor.
Los valores posibles para la directiva Options son cualquier combinación de:
Ninguna
Todas las opciones están desactivadas.
Todas
Todas las opciones excepto MultiViews. Esta es la configuración por defecto.
ExecCGI
Se permite la ejecución de scripts CGI utilizando mod_cgi.
FollowSymLinks
El servidor seguirá los enlaces simbólicos de este directorio.
Includes
Se permiten los includes del lado del servidor proporcionados por mod_include.
IncludesNOEXEC
Se permiten los includes del lado del servidor, pero los #exec cmd y #exec cgi están desactivados.
Indices
Mapas de URL a un directorio, y no DirectoryIndex, un listado formateado del directorio.
Se permite el contenido negociado «MultiViews» usando mod_negotiation.
SymLinksIfOwnerMatch
Sólo sigue enlaces simbólicos donde el objetivo es propiedad del mismo id de usuario que el enlace.
Esto deshabilitará todas las opciones, y entonces sólo habilitará FollowSymLinks, que es necesario para mod_rewrite.
Options NoneOptions FollowSymLinks
Top
DirectoryIndex # DirectoryIndex
DirectoryIndex establece el archivo que Apache servirá si se solicita un directorio.
Se pueden dar varias URLs, en cuyo caso el servidor devolverá la primera que encuentre.
DirectoryIndex index.php index.html /index.php
Top
DefaultLanguage # DefaultLanguage
DefaultLanguage hará que todos los archivos que no tengan ya una etiqueta de idioma específica asociada la utilicen.
DefaultLanguage en
Top
Default Charset # Default Charset
Establezca la codificación de caracteres por defecto enviada en la cabecera HTTP. Ver: Configuración de la información del conjunto de caracteres en .htaccess
AddDefaultCharset UTF-8
Configurar el Charset para archivos específicos
AddType 'text/html; charset=UTF-8' .html
Configurar para archivos específicos
AddCharset UTF-8 .html
Superior
Firma del servidor # ServerSignature
La directiva ServerSignature permite configurar una línea de pie de página bajo losgenerados por el servidor. Opcionalmente puede añadir una línea que contenga la versión del servidor y el nombre del host virtual a las páginas generadas por el servidor (documentos de error interno, listados de directorios FTP, salida mod_status y mod_info, etc., pero no documentos generados por CGI o documentos de error personalizados).
Activado
Agrega una línea con el número de versión del servidor y ServerName del host virtual que sirve
Desactivado
Suprime la línea de pie de página
Crea una referencia «mailto:» al ServerAdmin del documento referenciado
SetEnv SERVER_ADMIN [email protected] Email
Top
Forzar la descarga de archivos #Forzar la descarga de archivos
Lo siguiente hará que cualquier solicitud de archivos que terminen en las extensiones especificadas no se muestre en el navegador, sino que forzará un diálogo «Guardar como» para que el cliente pueda descargar.
AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4
Top
Compresión HTTP # HTTP Compression
La directiva AddOutputFilter asigna la extensión del nombre del archivo a los filtros que procesarán las respuestas del servidor antes de ser enviadas al cliente. Esto es adicional a cualquier filtro definido en otro lugar, incluyendo SetOutputFilter y AddOutputFilterByType. Este mapeo se fusiona sobre cualquiera que ya esté en vigor, anulando cualquier mapeo que ya exista para la misma extensión.
Ver también: https://developers.google.com/speed/docs/insights/EnableCompression
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascriptBrowserMatch ^Mozilla/4 gzip-only-text/htmlBrowserMatch ^Mozilla/4\.0 no-gzipBrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Forzar la compresión de ciertos archivos
SetOutputFilter DEFLATE
Top
Enviar cabeceras HTTP personalizadas # Enviar cabeceras HTTP personalizadas
La directiva Header te permite enviar cabeceras HTTP para cada petición, o sólo para archivos específicos. Puedes ver las cabeceras HTTP de un sitio usando Firebug, Chrome Dev Tools, Wireshark o una herramienta online.
Header set X-Pingback "http://www.askapache.com/xmlrpc.php"Header set Content-Language "en-US"
Top
Desactivar cabeceras HTTP # Desactivar cabeceras HTTP
Esto desactivará las cabeceras HTTP, usando siempre un esfuerzo extra para eliminarlas.
Header unset PragmaHeader always unset WP-Super-CacheHeader always unset X-Pingback
Top
Password Protect Login # Password Protect Login
Esto es muy útil para proteger el archivo wp-login.php
. Puedes usar este generador de htpasswd.
Autenticación Básica
AuthType BasicAuthName "Password Protected"AuthUserFile /full/path/to/.htpasswdRequire valid-userSatisfy All
Autenticación Digest
AuthType DigestAuthName "Password Protected"AuthDigestDomain /wp-login.php https://www.askapache.com/wp-login.phpAuthUserFile /full/path/to/.htpasswdRequire valid-userSatisfy All
Top
Requerir IP Específica # Requerir IP Específica
Esta es una forma de sólo permitir el acceso a ciertas direcciones IP.
ErrorDocument 401 defaultErrorDocument 403 defaultOrder deny,allowDeny from allAllow from 198.101.159.98 localhost
Top
Proteger Archivos Sensibles # Proteger Archivos Sensibles
Esto niega todo el acceso web a su archivo wp-config, error_logs, php.ini, y htaccess/htpasswds.
Order deny,allowDeny from all
Top
Requiere SSL # Require SSL
Esto forzará SSL, y requerirá el nombre de host exacto o de lo contrario redirigirá a la versión SSL. Útil en un /wp-admin/.htaccess
archivo.
SSLOptions +StrictRequireSSLRequireSSLSSLRequire %{HTTP_HOST} eq "www.wordpress.com"ErrorDocument 403 https://www.wordpress.com
Top