Pregunta

He probado estos dos códigos.Pero no está funcionando.También necesita acceder a la carpeta pública.

http://docs.phalconphp.com/en/latest/reference/tutorial.html

#www/tutorial/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  ^$ public/    [L]
    RewriteRule  (.*) public/$1 [L]
</IfModule>

#www/tutorial/public/.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
¿Fue útil?

Solución

Si mod_rewrite está habilitado, supongo que su servidor no está con el AllowOverride opción configurada correctamente...

Todo .htaccess Los archivos se ignoran de forma predeterminada en Apache porque alguien puede lograr cargar un .htaccess archivo a su servidor y anule las configuraciones de su servidor.Si está seguro de que el sistema de archivos de su servidor está protegido, puede hacer explícito en la configuración del servidor que su configuración puede ser anulada por cualquier .htaccess archivo en sus directorios.

Esto se hace a través del AllowOverride configuración.Referirse a esta pregunta para entender un poco más sobre esto.

Otros consejos

En caso de que esté en Ubuntu Edite el archivo /etc/apache2/apache2.conf (aquí tenemos un ejemplo de / var / www)

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

y cambiarlo a;

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

luego

Sudo Service Apache2 Reiniciar

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top