estoy configurando (laravelproj/public/.htaccess)
los ejemplos que he trabajado en 2 servidores diferentes de la siguiente manera:
<IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://takaful.hsn93.com/$1 [R,L] # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule> ahora lo estoy probando en cent OS apache (httpd) (si eso importa)
y cuando pongo el enlace ( http://example.com/ ) <apache devuelve lo siguiente:
no tengo ningún otro problema excepto este enlace ^ sin parámetros ^
Prohibido
No tienes permiso para acceder / en este servidor.
entonces, para que funcione, comentaría esta línea (condición en la que verifica si el directorio solicitado no es:
#RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]lo cual tiene sentido porque / es, por supuesto, un directorio ...
pero ¿por qué esta configuración de .htaccess funcionó en todas las demás máquinas? qué es diferente en esta máquina que hace que esta condición regrese prohibida desde apache
Encontré que el problema es que httpd.conf
no indexa archivos (index.php) solo (index.html)
así que lo modifiqué
<IfModule dir_module> DirectoryIndex index.html DirectoryIndex index.php </IfModule>