Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo modificar el patrón de URL en thinkphp3.2

Cómo modificar el patrón de URL en thinkphp3.2

El archivo de entrada es la única entrada a la aplicación. Todas las solicitudes a la aplicación apuntarán al archivo de entrada de la aplicación. El sistema analizará el módulo, el controlador y la operación solicitados actualmente desde los parámetros de URL: http: // serverName/index.php/modules/controllers/actions

Este es el formato de URL estándar para la versión 3.2.

Puede simplificar los nombres de módulos y controladores en direcciones URL configurando enlaces de módulos o implementaciones de dominio. Caso de URL

La URL del marco ThinkPHP distingue entre mayúsculas y minúsculas (principalmente el nombre del módulo, el nombre del controlador y el nombre de la operación, no los parámetros de la aplicación. Esto es muy crítico porque las reglas de nomenclatura de ThinkPHP usan mayúsculas y minúsculas). (La primera letra está en mayúscula), y los módulos y controladores en la URL son archivos correspondientes, por lo que definitivamente ocurrirán problemas de distinción entre mayúsculas y minúsculas en el entorno Linux.

Es probable que existan problemas de distinción entre mayúsculas y minúsculas en los entornos Linux.

El marco tiene un parámetro de configuración incorporado para resolver el problema del caso de URL, como se muestra a continuación: 'URL_CASE_INSENSITIVE' =>?true,

Cuando URL_CASE_INSENSITIVE se establece en verdadero, significa que las direcciones URL no distinguen entre mayúsculas y minúsculas, que es la configuración predeterminada del marco en el modo de implementación.

Cuando el modo de depuración está habilitado, este parámetro es falso, por lo que encontrará URL que distinguen entre mayúsculas y minúsculas en el modo de depuración. Modo URL

Si accedemos directamente al archivo de entrada, dado que no hay módulos, controladores ni operaciones en la URL, el sistema accederá a la operación predeterminada (índice) del controlador predeterminado (Índice) en el modo predeterminado módulo (Inicio), por lo que es equivalente al siguiente método de acceso: http://serverName/index.phphttp://serverName/index.php/Home/Index/index

Este modo de URL es el predeterminado del sistema Modo PATHINFO. Los diferentes modos de URL tienen diferentes módulos de acceso y métodos de operación. ThinkPHP admite cuatro modos de URL: ThinkPHP admite cuatro modos de URL: NORMAL, PATHINFO, REWRITE y modo de compatibilidad. Puede cambiar el modo de URL configurando el parámetro URL_MODEL.

Modo URL

URL_MODEL Establecer modo normal 0

Modo PATHINFO 1

Modo REWRITE 2

Modo de compatibilidad 3

Si los módulos de toda la aplicación utilizan un modo URL unificado, puede configurar el modo URL; si diferentes módulos requieren diferentes modos URL, puede configurarlo en el archivo de configuración del módulo. Modo binario

El modo binario es el modo de paso GET tradicional, que se utiliza para especificar el módulo y la operación al que se accede actualmente, por ejemplo:?http://localhost/?m=home&c=user&a=login&var=value

m representa el módulo, el parámetro c representa el controlador, el parámetro a representa la operación (por supuesto, estos parámetros son configurables) y los siguientes parámetros representan otros parámetros GET.

Si la configuración de las variables predeterminadas entra en conflicto con las variables de su aplicación, debe restablecer la configuración del sistema, por ejemplo: 'VAR_MODULE'=>?' VAR_CONTROLLER' =>?' controlador', //El controlador predeterminado obtiene la variable 'VAR_ACTION'=>?' acción', //La acción predeterminada obtiene la variable

La dirección de acceso anterior se convierte en: ?http: //localhost/?module=home&controller=user&action=login&var=value

Tenga en cuenta que VAR_MODULE solo se puede configurar en el archivo de configuración de la aplicación, y otros parámetros se pueden configurar en el modo PATHINFO en el módulo configuración

El modo PATHINFO es el modo URL predeterminado del sistema, que proporciona el mejor soporte de SEO, y el sistema ha sido procesado para compatibilidad con el entorno y puede admitir la mayoría de los entornos de host. Correspondiente al modo URL anterior, la dirección de acceso URL en el modo PATHINFO es:?http://localhost/index.php/home/user/login/var/value/

Los primeros tres de PATHINFO dirección Los parámetros representan módulos/controladores/operaciones respectivamente.

Sin embargo, en el modo PATHINFO, aún puedes usar la parametrización del modo URL normal, por ejemplo: ?http://localhost/index.php/home/user/login?var=value

Aún válido

En modo PATHINFO, la URL se puede personalizar, por ejemplo, mediante la siguiente configuración: /?Cambiar el separador de parámetros PATHINFO 'URL_PATHINFO_DEPR'=>'-',

También podemos admitir el siguiente acceso URL:?http://localhost/index.php/home-user-login-var-valueModo REWRITE

El modo de reescritura se basa en el modo PATHINFO Añadiendo soporte Para reescribir reglas, puede eliminar el archivo de entrada index.php en la dirección URL. Pero es necesario configurar adicionalmente las reglas de reescritura del servidor WEB.

Si es Apache, necesita agregar un archivo .htaccess al mismo nivel que el archivo de entrada con el siguiente contenido: RewriteEngine?on RewriteCond?%{REQUEST_ FILENAME} ?-RewriteCond? %{REQUEST_FILENAME}?-f?RewriteRule?^(.*)$?index.php/$1?[QSA,PT,L]

A continuación, puede ser se accede a través de la siguiente dirección URL:?http://localhost/home/user/login/var/value

Proporciona soporte de reescritura de URL para más entornos. Consulte la sección Implementación para la reescritura de URL.

Modo de compatibilidad

El modo de compatibilidad se utiliza en entornos especiales que no admiten PATHINFO. La dirección URL es: ?http://localhost/?s=/home/user/login. /var/ value

Puedes cambiar la definición del nombre de una variable de modo de compatibilidad, por ejemplo: 'VAR _PATHINFO'? =>?'

El separador de parámetros PATHINFO todavía funciona en modo de compatibilidad, por ejemplo ://?Cambie el separador de parámetros PATHINFO 'URL_PATHINFO_DEPR'=>'-',

A través de la configuración anterior, puede cambiar la dirección de acceso URL a:?http://localhost/ ?path=/home-user-login-var-value

El modo de compatibilidad coincide con la definición de la regla de reescritura del servidor web y puede lograr el mismo efecto de URL que el modo REWRITE.

Por ejemplo, si usamos Apache, el archivo .htaccess cambia a: RewriteEngine?on RewriteCond?%{REQUEST_FILENAME }?-RewriteCond?%{REQUEST_FILENAME }?-f? RewriteRule ?^(.*)$?index.php?s=/$1?[QSA,PT,L]

Se puede acceder a la siguiente dirección URL de la misma manera que en el modo REWRITE : ? http://localhost/home/usuario/login/var/valor