Pregunta

Estoy a punto de poner en marcha un sitio de Codeigniter. Quiero eliminar index.php de la url para que en lugar de esto:

http://www.mysite.com/index.php/controller

Me sale algo como esto:

http://www.mysite.com/controller

Hasta ahora, bastante sencillo. En el pasado, he usado la regla mod-rewrite proporcionada por la documentación de Codeigniter:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Esto funciona como un encanto. Sin embargo, para este sitio, tengo que usar un servidor web Zeus en lugar de Apache, y no estoy familiarizado con él en absoluto. Zeus tiene sus propias reglas de reescritura de modo que esto:

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteRule ^[^/]*\.html$ index.php

se convertiría en esto:

match URL into $ with ^/[^/]*\.html$
if matched then set URL = /index.php

¿Alguien puede ayudarme a reescribir la primera regla para Zeus? Cualquier ayuda recibida con mucho agradecimiento!

¿Fue útil?

Solución

Lo descubrí, lo siguiente funciona muy bien para mí:

map path into SCRATCH:DOCROOT from /

set SCRATCH:ORIG_URL = %{URL}
set SCRATCH:REQUEST_URI = %{URL}

look for file at %{SCRATCH:DOCROOT}%{SCRATCH:REQUEST_URI}
if not exists then look for dir at %{SCRATCH:REQUEST_URI}%{SCRATCH:REQUEST_URI}
if not exists then set URL = /index.php%{SCRATCH:REQUEST_URI}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top