Archivo Apache htaccess, ¿dónde me equivoqué?

Realmente no puedo encontrar mi error, puedo acceder al mapa del sitio/enlace, pero todos los demás dan un error 404 No encontrado.

DirectoryIndex index.php index.php?page=home index.php?page=error
Options Indexes FollowSymLinks MultiViews

AllowOverride All
Order allow,deny
Allow from all

<IfModule mod_rewrite.c>
    RewriteEngine On

    # some other stuff #

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteBase /
    RewriteRule ^sitemap/?$ sitemap.xml.php [L]
    RewriteRule ^([a-zA-Z]+)/?$ index.php?page=$1 [L]
    RewriteRule ^products/?$ index.php?page=products [L]
    RewriteRule ^products/([0-9]+)/?$ index.php?page=products&id=$1 [L]
</IfModule>

Realmente agradecería algo de ayuda, definitivamente apesto con los archivos .htaccess...

preguntado el 04 de julio de 12 a las 01:07

Verifique su registro de errores: ¿qué aparece? -

Misma línea un cierto número de veces:[Wed Jul 04 02:56:30 2012] [error] [client 127.0.0.1] File does not exist: /var/www/home" -

Entonces... ¿Estás seguro de que el problema radica en tu archivo .htaccess? -

No, realmente estoy empezando a pensar que el problema puede provenir de mi configuración de Apache. -

1 Respuestas

Dejando de lado las reglas de reescritura, tiene otros problemas aquí:

DirectoryIndex index.php index.php?page=home index.php?page=error

Esto significa que, para una carpeta, un presentar el índice que muestra se seleccionará en este orden (el primero existente gana):

  1. index.php
  2. index.php?page=home (este es el nombre de archivo)
  3. index.php?page=error (este es el nombre de archivo)

Dudo que esta fuera tu intención.

Siguiente:

AllowOverride All

Si ya estás en .htaccess y AllowOverride era restrictivo, esto no ayudará, y si no lo fuera, entonces no tiene sentido escribir esto de nuevo.

Order allow,deny
Allow from all

Esto básicamente dice "permitir a todos en todas partes", que es el valor predeterminado de todos modos. A menos que estuviera restringido de alguna manera en el nivel superior o en la configuración de apache, esto es redundante.


En cuanto a reescribir:

RewriteRule ^([a-zA-Z]+)/?$ index.php?page=$1 [L]
RewriteRule ^products/?$ index.php?page=products [L]

La segunda regla es redundante de todos modos, y nunca se alcanzará (ya que la primera también la cumple).


En cuanto al error que estás viendo:

[Wed Jul 04 02:56:30 2012] [error] [client 127.0.0.1] File does not exist: /var/www/home"

Esto puede significar problemas con DocumentRoot definiciones Por favor, publique su VirtualHosts configuración.

Respondido 04 Jul 12, 09:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.