.htaccess - rewriterule - htaccess ejemplo
.htaccess mod_rewrite-cómo excluir el directorio de la regla de reescritura (6)
Tengo 8 líneas de reglas de reescritura en mi archivo .htaccess. Necesito excluir dos directorios físicos en mi servidor de estas reglas, para que puedan ser accesibles. Por ahora todas las solicitudes se envían al archivo index.php.
Directorios para excluir: "admin" y "usuario".
Por lo tanto, las solicitudes http: http://www.domain.com/admin/ no se deben pasar al archivo index.php.
ErrorDocument 404 /index.php?mod=error404
Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www/.domain/.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
RewriteRule ^([^/] )/([^/] )/.html$ index.php?lang=$1&mod=$2 [L]
RewriteRule ^([^/] )/$ index.php?lang=$1&mod=home [L]
Lo que también podría hacer es colocar un archivo .htaccess que contenga
RewriteEngine Off
En las carpetas que desea excluir de la reescritura (por las reglas en un archivo .htaccess que está más arriba en el árbol). Simple pero efectivo
Pruebe esta regla antes que sus otras reglas:
RewriteRule ^(admin|user)($|/) - [L]
Esto terminará el proceso de reescritura.
Si desea eliminar un directorio particular de la regla (es decir, desea eliminar el directorio foo ), puede usar:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/foo/$
RewriteRule !index/.php$ /index.php [L]
La rewriteRule anterior reescribirá todas las solicitudes a /index.php excluyendo solicitudes para / foo / .
Para excluir todos los directorios existentes, deberá usar la siguiente condición arriba de su regla:
RewriteCond %{REQUEST_FILENAME} !-d
la siguiente regla
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !index/.php$ /index.php [L]
reescribe todo (excepto direcciones ) a /index.php .
Usamos la siguiente regla mod_rewrite:
RewriteEngine en
RewriteCond% {REQUEST_URI}! ^ / Test /
RewriteCond% {REQUEST_URI}! ^ / My-folder /
RewriteRule (. *) http://www.newdomain.com/ $ 1 [R = 301, L]
Esto redirecciona (permanentemente con una redirección 301) todo el tráfico al sitio a http://www.newdomain.com/ , excepto las solicitudes a los recursos en los directorios / test y / my-folder. Transferimos al usuario al recurso exacto que solicitó utilizando el grupo de captura (. *) Y luego incluimos $ 1 en la nueva URL. Cuidado con los espacios.
agregue una condición para buscar el directorio de administración, algo como:
RewriteCond %{REQUEST_URI} !^/?(admin|user)/
RewriteRule ^([^/] )/([^/] )/.html$ index.php?lang=$1&mod=$2 [L]
RewriteCond %{REQUEST_URI} !^/?(admin|user)/
RewriteRule ^([^/] )/$ index.php?lang=$1&mod=home [L]
RewriteEngine On
RewriteRule ^(wordpress)($|/) - [L]