rewriterule htaccess ejemplo .htaccess mod-rewrite url-rewriting

.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]