working que not cloak angularjs .htaccess

angularjs - not - El servidor no puede leer el archivo htaccess, negando que el acceso sea seguro



ng-cloak que es (8)

"El servidor no puede leer el archivo htaccess" significa justamente eso. Asegúrese de que los permisos en su archivo .htaccess sean legibles en todo el mundo.

He creado una aplicación simple utilizando AngularJS. Cuando intenté alojar ese proyecto en mi sitio web http://demo.gaurabdahal.com/recipefinder se muestra el siguiente error:

Prohibido

No tiene permiso para acceder a / recipefinder en este servidor. El servidor no puede leer el archivo htaccess, negando que el acceso sea seguro

Pero si voy a http://demo.gaurabdahal.com/ se muestra el mensaje "acceso denegado" como se esperaba, que he impreso. Pero, ¿por qué no se puede abrir que los proyectos de AngularJS sean "recipefinder"? Si intenté poner una aplicación HTML simple allí, se abre bien.

El mismo proyecto AngularJS funciona bien cuando lo alojo en github ( http://gaurabdahal.github.io/recipefinder )

No puedo entender lo que está mal.


Debe ejecutar estos comandos en /var/www/html/ o en cualquier otro directorio en el que se encuentre su proyecto:

sudo chgrp -R group ./ sudo chown -R user:group ./ find ./ -type d -exec chmod 755 -R {} /; find ./ -type f -exec chmod 644 {} /;

En mi caso (servidor web apache) uso www-data para user y group


En mi caso, apache estaba mal configurado, así que también tuve que establecer permisos en todos los directorios de padres. Simplemente el permiso para .htaccess (y su directorio principal) no funcionó.


Establecer grupo de su directorio público a nadie.


Este es un problema común con el alojamiento del servidor virtual GoDaddy cuando se abre un nuevo sitio web.

Suponiendo que tenga acceso SSH al servidor (debe habilitarlo en cPanel), inicie sesión en su cuenta. Una vez que inicie sesión correctamente, se lo ubicará en el directorio de inicio de su cuenta. El DocumentRoot para su sitio web se encuentra en un subdirectorio llamado public_html. GoDaddy establece por defecto los permisos para este directorio en 750, pero esos permisos son inadecuados para permitir que Apache lea los archivos del sitio web. Debe cambiar los permisos para este directorio a 755 (chmod 755 public_html).

Copie los archivos de su sitio web en el directorio public_html (tanto scp como rsync funcionan para copiar archivos en un servidor Linux de GoDaddy).

A continuación, asegúrese de que todos los archivos en public_html sean legibles en todo el mundo. Para hacer esto, usa este comando:

cd public_html chmod -R o+r *

Si tiene otros subdirectorios (como css, js e img), asegúrese de que sean accesibles desde todo el mundo habilitando tanto la lectura como la ejecución para el acceso mundial:

chmod o+r,o+x css chmod o+r,o+x img chmod o+r,o+x js

Por último, deberá tener un archivo .htaccess en el archivo public_html. GoDaddy aplica una regla que prohíbe la carga del sitio si no tiene un archivo .htaccess en su directorio public_html. Puede usar vi para crear este archivo ("vi .htaccess"). Introduce las siguientes líneas en el archivo:

Order allow,deny Allow from all Require all granted

Esta configuración funcionará tanto para Apache 2.2 como para Apache 2.4. Guarde el archivo (ZZ) y luego asegúrese de que el archivo tenga permisos de 644:

chmod 644 .htaccess

Funciona de maravilla.


Puntos importantes en mi experiencia:

  • Cada recurso al que accede el servidor debe estar en un directorio ejecutable y legible, por lo tanto, el xx5 en cada chmod en otras respuestas.
  • la mayoría de las veces, el servidor web (apache en mi caso) no se ejecuta como usuario ni en el grupo que posee el directorio, por lo que, de nuevo, xx5 o chmod o+rx son necesarios.

Pero la mayor conclusión a la que llegué es comenzar de poco a más.

Por ejemplo, si http://myserver.com/sites/all/resources/assets/css/bootstrap.css produce un error 403, vea si http://myserver.com/ funciona, luego sites , luego sites/all , luego sites/all/resources , y así sucesivamente.

Ayudará si su servidor tiene índices de directorio habilitados:

  • En Apache: Options +Indexes

Esta instrucción también puede estar en el archivo .htaccess de su carpeta public_html del servidor web.


Yo tuve este problema también. Mi consejo es mirar en su archivo de registro de errores del servidor. Para mí, era que el directorio superior para el proyecto no era legible. El registro de errores lo indica claramente. Un simple

sudo chmod -R 755 <site_top_folder>

lo arregla para mi


Solución de servidor compartido GoDaddy

Básicamente, tuve el mismo problema al intentar implementar un proyecto Laravel separado en un nivel de subdominio.

Estructura de archivos

- public_html (where the main web app resides) [works fine] - booking.mydomain.com (folder for separate Laravel project) [showing error 403 forbidden]

Solución

  1. Vaya a cPanel de su cuenta de GoDaddy
  2. abrir el administrador de archivos
  3. Vaya a la carpeta que muestra 403 error prohibido
  4. en el Administrador de archivos, haga clic con el botón derecho en la carpeta (en mi caso booking.mydomain.com)
  5. seleccione Modificar permisos
  6. Seleccione las siguientes casillas de verificación

    a) user - read, write, execute b) group - read, execute c) world - read, execute Permission code must display as 755

  7. Haga clic en Cambiar permisos.

¡Trabajo hecho!