Redirigiendo a mi carpeta de proyecto Laravel

Redirigiendo a mi carpeta de proyecto Laravel

Tengo el siguiente contenido en mi .htaccessarchivo. Esperaba que redirigiese a la carpeta de mi proyecto /hc, que está en el mismo nivel que .htaccess. La redirección no se realiza y todavía se muestra el contenido de index.html.

RewriteEngine On

RewriteBase /hc/

<Files .*>
    Order Deny,Allow
    Deny From All
</Files>

RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php?/$0 [PT,L,QSA]

Respuesta1

Esperaba que redirigiese a la carpeta de mi proyecto, /hcque esal mismo nivel que.htaccess.

Ese es el problema. Si el .htaccessarchivo está en el /hcsubdirectorio, nunca verá la solicitud a menos que ya incluya el /hcsubdirectorio en la solicitud.

Su .htaccessarchivo debe ir al directorio principal. es decir. la raíz del documento. (Por cierto, solo necesitaría la RewriteBase /hc/directiva si este archivo estuviera en la raíz del documento).

O incluir unadicional .htaccessarchivo en la raíz del documento que simplemente reenvía todas las solicitudes a su /hcdirectorio (su controlador frontal), por ejemplo:

RewriteEngine On
RewriteRule (.*) hc/$1 [L]

Tenga en cuenta que, dado que mod_rewrite no se hereda de forma predeterminada, una vez que la solicitud se reescribe en el /hcsubdirectorio, el .htaccessarchivo en el subdirectorio se procesa y anula las directivas mod_rewrite en el .htaccessarchivo principal, para que no termine con un bucle de reescritura.


RewriteRule .* index.php?/$0 [PT,L,QSA]

ACTUALIZAR:SusustituciónLa cadena en la última RewriteRuledifiere de la directiva anterior. Probablemente ambas no sean correctas. Es posible que desee eliminar la ?directiva anterior, a menos que desee enviarnos la cadena de consulta, entonces debe agregar una ?a la directiva anterior. Tal como están las cosas, los primeros usosinformación de rutapara pasar la URL, el segundo usa elcadena de consulta.

Por cierto, la PTbandera es redundante en archivos por directorio .htaccess. Y si no está utilizando la cadena de consulta, la QSAmarca también se puede eliminar.

Respuesta2

Debe habilitar la opción "reescribir" en su archivo de configuración de Apache "sitios disponibles". Para laravel debes tener cuidado porque tu DocumentRoot (carpeta pública donde necesitas el archivo .htaccess) está dentro de la carpeta del proyecto.

información relacionada