Sin la posibilidad de acceder a .htaccess, me encuentro en un impasse creativo. No hay mod_rewriting para mí. Sin embargo, quiero ser capaz de hacer cosas agradables como:
http://www.example.com/Blog/2009/12/10/ http://www.example.com/Title_Of_This_Page
¿Cuáles son mis alternativas?
En respuesta a las respuestas:
http://www.example.com/index.php/Blog/
es una técnica conocida, pero no la prefiero. Es muestra el php por así decirlo. Si tiene los permisos para configurar documentos de error personalizados para su servidor, puede usar esto para redirigir las solicitudes 404.
Por ejemplo, para Apache ( http://httpd.apache.org/docs/2.0/mod/core.html#errordocument )
ErrorDocument 404 /index.php
En index.php, puede continuar su solicitud utilizando los datos de la matriz $ _SERVER.
También puedes tener URL como
http://domain.com/index.php/Blog/Hello_World
fuera de la caja con PHP5. A continuación, puede leer los parámetros de URL usando
echo $_SERVER['PATH_INFO'];
Recuerde validar / filtrar PATH_INFO y todas las demás variables de solicitud antes de usarlas en su aplicación.
Sé que esta pregunta es muy antigua, pero no vi a nadie más sugerir esta posible solución …
Puede acercarse mucho a lo que desea simplemente agregando un signo de interrogación después de la parte de dominio de la URL, es decir;
http://www.example.com/?Blog/2009/12/10/ http://www.example.com/?Title_Of_This_Page
Ambas solicitudes HTTP anteriores serán manejadas por el mismo script PHP
;
www.example.com/index.php
y en el script index.php
, $_SERVER['REQUEST_URI']
para las dos páginas de arriba será respectivamente;
Blog/2009/12/10/
Title_Of_This_Page
para que pueda manejarlos como quiera.
Una forma bastante simple es:
.htaccess
$_SERVER
y ver si corresponde a cualquier resultado header()
e incluya index.php Si omite una barra inclinada, Apache publicará el primer archivo [alfabéticamente] que coincida con ese nombre, independientemente de la extensión, al menos en los 2 servidores a los que tengo acceso.
No sé cómo podría usar esto para resolver su problema, pero puede ser útil en algún momento.
Por ejemplo, si http://www.somesite.com/abc.html
y http://www.somesite.com/abc.php
existen y se solicita http://www.somesite.com/abc.html
, http://www.somesite.com/abc.html
se http://www.somesite.com/abc.html
.
La única forma es usar la página 404 personalizada. No tiene posibilidad de interpretar archivos sin extensión con intérprete PHP sin reconfigurar los tipos MIME del servidor web. Pero dices que no puedes editar incluso .htaccess, así que no hay otra forma.
Puede escribir una clase de URI que analice la URL amigable que definió.
Si la opción MultiViews
está habilitada o puede convencer a quien tenga las claves para habilitarla, puede crear un script llamado Blog.php que le pasará las solicitudes a example.com/Blog/foo
y obtendrá ‘/ foo’ en $_SERVER['PATH_INFO']
.