Foros del Web » Administración de Sistemas » Apache »

php y apache con modulo mod_rewrite

Estas en el tema de php y apache con modulo mod_rewrite en el foro de Apache en Foros del Web. ayuda por favor fedora16 asi me funciona http://seophp.example.com/product.php?product_id=123 asi no funciona http://seophp.example.com/my-super-product.html Not Found The requested URL /my-super-product.html was not found on this server. Apache/2.2.21 ...
  #1 (permalink)  
Antiguo 05/01/2012, 14:42
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 10 meses
Puntos: 1
php y apache con modulo mod_rewrite

ayuda por favor

fedora16

asi me funciona
http://seophp.example.com/product.php?product_id=123
asi no funciona
http://seophp.example.com/my-super-product.html

Not Found
The requested URL /my-super-product.html was not found on this server.

Apache/2.2.21 (Fedora) Server at seophp.example.com Port 80


todo esta en el mismo directorio /var/www/html/seophp/
product.php
<?php
echo 'producto #' . $_GET['product_id'];
?>
.htaccess
RewriteEngine On
RewriteRule ^my-super-product\.html$ /product.php?product_id=123


/var/log/httpd
more access_log
[Thu Jan 05 20:21:24 2012] [error] [client 127.0.0.1] File does not exist: /var/www/html/seophp/my-super-product.html
[Thu Jan 05 20:27:26 2012] [error] [client 127.0.0.1] Directory index forbidden by Options directive: /var/www/html/
[Thu Jan 05 20:32:09 2012] [error] [client 127.0.0.1] File does not exist: /var/www/html/seophp/my-super-product.html
[Thu Jan 05 20:34:30 2012] [error] [client 127.0.0.1] File does not exist: /var/www/html/seophp/my-super-product.html
[Thu Jan 05 20:36:30 2012] [error] [client 127.0.0.1] File does not exist: /var/www/html/seophp/my-super-product.html

more error_log
127.0.0.1 - - [05/Jan/2012:20:32:09 +0100] "GET /my-super-product.html HTTP/1.1" 404 303 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
127.0.0.1 - - [05/Jan/2012:20:34:18 +0100] "GET /product.php?product_id=123 HTTP/1.1" 200 30 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
127.0.0.1 - - [05/Jan/2012:20:34:30 +0100] "GET /my-super-product.html HTTP/1.1" 404 303 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
127.0.0.1 - - [05/Jan/2012:20:35:10 +0100] "GET /product.php?product_id=123 HTTP/1.1" 200 30 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
127.0.0.1 - - [05/Jan/2012:20:35:14 +0100] "GET /product.php?product_id=123 HTTP/1.1" 200 30 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
127.0.0.1 - - [05/Jan/2012:20:36:30 +0100] "GET /my-super-product.html HTTP/1.1" 404 303 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"


en el fichero de apache esta descomentado el mod_rewrite.so

LoadModule rewrite_module modules/mod_rewrite.so

AccessFileName .htaccess

NameVirtualHost 127.0.0.1:80

<VirtualHost 127.0.0.1:80>
DocumentRoot "/var/www/html"
ServerName localhost
</VirtualHost>

<VirtualHost 127.0.0.1:80>
DocumentRoot "/var/www/html/seophp"
ServerName seophp.example.com
<Directory /seophp/>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>




podria ser algun problema con el cortafuegos
getsebool -a
allow_httpd_anon_write --> off
allow_httpd_mod_auth_ntlm_winbind --> off
allow_httpd_mod_auth_pam --> off
allow_httpd_sys_script_anon_write --> off
httpd_builtin_scripting --> on
httpd_can_check_spam --> off
httpd_can_connect_ftp --> off
httpd_can_connect_ldap --> off
httpd_can_network_connect --> off
httpd_can_network_connect_cobbler --> off
httpd_can_network_connect_db --> off
httpd_can_network_memcache --> off
httpd_can_network_relay --> off
httpd_can_sendmail --> off
httpd_dbus_avahi --> off
httpd_enable_cgi --> on
httpd_enable_ftp_server --> off
httpd_enable_homedirs --> off
httpd_execmem --> off
httpd_read_user_content --> off
httpd_setrlimit --> off
httpd_ssi_exec --> off
httpd_tmp_exec --> off
httpd_tty_comm --> on
httpd_unified --> off
httpd_use_cifs --> off
httpd_use_gpg --> off
httpd_use_nfs --> off

si hago un
<?php
phpinfo()
?>
Loaded Modules mod_rewrite

no se porque no funciona
  #2 (permalink)  
Antiguo 07/01/2012, 13:55
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: php y apache con modulo mod_rewrite

Probá asi

por un lado hace explicito el FollowSymLinks con +FollowSymLinks

y la regla modificala por esto

Código Apache:
Ver original
  1. RewriteRule ^my\-super\-product\.html$ /product.php?product_id=123

como es una expresión regular, el - es un caracter reservado con \- lo hacés literal

Debería funcionarte
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 08/01/2012, 14:07
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: php y apache con modulo mod_rewrite

active i desactive el cortafuegos
/etc/selinux/config
disabled


tambien canvie los permisos
chmod 777 -R seophp*

el problema esta que cada vez que creo una carpeta en /var/www/html
tendre estos permisos y tendrian que ser drw-r--r--- estos drwxr-xr-x

como usuario root
cd /var/www/html
mkdir seophp
-rw-r--r---

chown usuario seophp
chmod 755 seophp

ln -s /var/www/html/seophp /home/alberto/seophp
  #4 (permalink)  
Antiguo 08/01/2012, 14:32
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 5 meses
Puntos: 1567
Respuesta: php y apache con modulo mod_rewrite

como se relaciona tu último post con lo de la redirección del primero, el error log de Apaches bastante explícito
127.0.0.1 - - [05/Jan/2012:20:36:30 +0100] "GET /my-super-product.html HTTP/1.1" 404 303 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
Cambiaste por lo que te señalé?


__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 11/01/2012, 01:08
 
Fecha de Ingreso: febrero-2009
Mensajes: 443
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: php y apache con modulo mod_rewrite

creo que ya he encontrado el problema

en httpd.conf
en la directiva
antes solo tenia seophp

Código Apache:
Ver original
  1. <Directory /var/www/html/seophp>

el problema que tengo ahora es que el fichero product.php y .htaccess solo funciona dentro de la carpeta seophp,
si creo una carpeta dentro de seophp por ejemplo prueba y pongo estos 2 ficheros dentro y pongo la url
http://seophp.example.com/prueba/my-super-product.html
no funciona y quiero hacer diferentes pruebas con carpetas diferentes y dentro con su respectivo fichero php y .htaccess como puedo solucionar este problema,

esto debe ser un problema relacionado con apache, porque en .htaccess no pongo path absolutos tendría que funcionar en cualquier directorio que este dentro /var/www/html/seophp


algo que también es muy extraño es si tengo product.php dentro de la carpeta seophp y .htaccess dentro de la carpeta prueba
funciona
http://seophp.example.com/prueba/my-super-product.html


si elimino product.php de la carpeta seophp, y lo pongo en la carpeta prueba
me sale error

Not Found

The requested URL /product.php was not found on this server.
Apache/2.2.21 (Fedora) Server at seophp.example.com Port 80

en definitiva que el redireccionamiento de product.php solo funciona en la carpeta seophp que el fichero tiene que estar dentro de la carpeta seophp,
si no hago redireccionamiento product.php funciona en seophp o prueba
.htaccess no importa donde lo pongas siempre que este dentro /var/www/html/seophp

gracias emprear por la ayuda

Última edición por albertrc; 13/01/2012 a las 00:05

Etiquetas: htaccess, html, modulo, php, rewrite, url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:56.