apache - ifmodule - ¿Cómo hago para que mod_rewrite suprima el procesamiento de más reglas?
mod_rewrite htaccess (2)
Dado mi actual archivo .htaccess, ¿cómo lo modificaría para verificar una ruta URL adicional como ''/ src / pub / '' y volver a escribirla en ''/ '' sin afectar la reescritura actual?
Aquí está el archivo original .htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
y aquí está mi intento reciente (que no funciona):
RewriteEngine on
RewriteRule ^/src/pub/(.*)$ /$1 [R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
Editar: Aquí hay algunos ejemplos de lo que quiero lograr:
Nueva regla adicional:
From: http://www.mysite.com/src/pub/validfile.php
To: http://www.mysite.com/validfile.php
From: http://www.mysite.com/src/pub/user/detail/testuser
To: http://www.mysite.com/user/detail/testuser
Regla existente (que ya funciona):
From: http://www.mysite.com/user/detail/testuser
To: http://www.mysite.com/index.php?route=user/detail/testuser
Supongo que el problema es que la URL está siendo reescrita por la primera regla y luego reescrita por la segunda.
La solución a eso es agregar la bandera "última" a la primera regla, como esta:
RewriteRule ^/src/pub/(.*)$ /$1 [R,L]
dentro de un archivo .htaccess, use esto en su lugar:
RewriteRule ^src/pub/(.*)$ /$1 [R]
el "/" inicial no coincidirá dentro de .htaccess, solo dentro de httpd.conf
( src - parte inferior de la página) si desea detener el procesamiento de otras reglas, luego agregue el indicador L
:
RewriteRule ^src/pub/(.*)$ /$1 [L,R]
reescribir la comparación de registros (contexto .htaccess):
// using ^/src/pub/(.*)$ - leading slash will not work in .htaccess context!
(1) pass through /home/test/src
// using ^src/pub/(.*)$
(2) rewrite ''src/pub/testme'' -> ''/testme''
(2) explicitly forcing redirect with http://test/testme
(1) escaping http://test/testme for redirect
(1) redirect to http://test/testme [REDIRECT/302]