Red de conocimiento informático - Aprendizaje de programación - php aprende nginx build DZ2.5 cómo configurar pseudoestático, ¡pero falla!

php aprende nginx build DZ2.5 cómo configurar pseudoestático, ¡pero falla!

Servidor proxy nginx (pronunciado motor), código fuente publicado bajo una licencia similar a BSD. Publica el código fuente bajo una licencia similar a BSD y se publica bajo un acuerdo similar a BSD. Se caracteriza por su tamaño pequeño, alta eficiencia, uso reducido de memoria y gran concurrencia. De hecho, la concurrencia de Nginx funciona mejor entre servidores web del mismo tipo. En China continental, Sina, NetEase, Taobao, Tencent, etc. utilizan Nginx. El 4 de octubre de 2004, Nginx lanzó la primera versión pública 0.1.0. El 1 de junio de 2011, se lanzó Nginx 1.0.4, conocido por su estabilidad, su rico conjunto de funciones, sus archivos de configuración de muestra y su bajo consumo de recursos del sistema. Esto ilustra los beneficios de utilizar la arquitectura LNMP.

En cuanto a la tecnología pseudoestática, se introdujo originalmente después de la aparición de los lenguajes dinámicos para resolver el problema de la conveniencia del usuario y la facilidad de búsqueda de las arañas. Los componentes pseudoestáticos incluyen ISAPI_Rewrite, IIRF de código abierto, etc. Sin embargo, la versión optimizada de ISAPI_Rewrite solo admite httpd.conf global y no admite httpd.ini distribuido. Solo la versión completa paga admite httpd.ini distribuido. Ahora sabemos que Nginx también puede implementar pseudoestático simple. Para obtener más información sobre pseudoestático, consulte

CI requiere un archivo de configuración .htaccess para ejecutarse en Apache y Nginx, y se requiere un archivo web.config en el servidor IIS CI pseudoestático. se debe configurar en Reglas .htaccess

RewriteEngine está activado

¡RewriteCond $1! ^(index\.php|system\\.php|images|skin|js|ls|swfupload|attachment|application|robots\.txt)

RewriteRule ^(. *)$ /fx/index .php/$1 [L]

Nota: RewriteRule ^(. *)$ /webdir/index.php/$1 [L] webdir es el directorio de su programa CI

Pseudo servidor Nginx -La configuración estática primero necesita configurar nginx para habilitar path_info (LNMP está habilitado de forma predeterminada)

, puede consultar el siguiente método de ZK:

Supongamos que nuestro subdirectorio se llama zk

ubicación /zk/ {

raíz /var/www/html/

índice index.html index.htm index.php;

if ( $request_filename ! ~* /giftbox/(javascript|css|images|style|upimg|artDialog|fckeditor|userfiles|crontab|robots\.txt|index\.php)){

reescribir ^/( . *)$ /zk/index.php?$1 último;

}

La ruta del directorio raíz es la ruta del directorio raíz y no es necesario cambiarla .

Se adjunta otra regla pseudoestática para el directorio de inicio

#rewrite ^/$ /index.php al final;

#rewrite ^/$ /index .php último;

#reescribir ^/(? !index\.php|images|robots\.txt|js|css|upimg|artDialog|style)(. *)$ /index.php/ $1 último;

Primero, debe configurar nginx para habilitar la información de ruta (lnmp tiene la información de ruta habilitada de forma predeterminada)

Regla pseudoestática:

if ($request_uri ~ * ^/system)

{

reescribir ^/($request_uri ~* ^/system).p> reescribir ^/(. *)$ /index. php?/$1 último;

break;

}

if (! -e $request_filename)

{

reescribe ^/(. *)$ /index.php?/$1 último;

descanso;

}

Entre la información que se encuentra en el Internet, mucha gente dice que nginx actualmente no admite archivos .htaccess para procesamiento pseudoestático. htaccess para convertirlo en pseudoestático, no creo que deba hacerse. Como el servidor WEB más liviano y mejor utilizado del mundo, nginx debería poder hacerlo. A través de Google, descubrí que nginx puede admitir completamente la información del archivo .htaccess. De hecho, no hay diferencia en las extensiones de archivo en Linux y no hay diferencia en los nombres de los archivos de configuración pseudoestáticos de nginx. Siga los siguientes pasos para pasos específicos:

1. Cree un nuevo archivo .htaccess e ingrese las reglas en él, como:

# nginx reescribir reglas reescribir ^(. * ?) / artículo/.*?-(\d+)-(\d+)\.html$ $1/show.html?id=$2&page=$3 reescribir ^(. *?) /artículo/.*?* ?)/category/.*?-(\d+)-(\d+)\.html$ $1/list.html?id=$2&page=$3 break; reescribir ^(. *?) /category/.*?* ?)/ etiqueta/([^/]+)/? $ $1/tag.html?w=$2 descanso; reescribir ^(. *?) /etiqueta/ ([^ /]+)/?*?)/tag/([^/]+)/(\d+)$ $1/tag.html?w=$2&page=$3 break # Finalizar reglas de reescritura de nginx

Guarde el archivo y cárguelo en el directorio raíz del sitio web.

2. Modificar la configuración del host virtual

# ee /usr/local/etc/nginx/nginx.conf #freebsd 7.2 Archivo de configuración de instalación predeterminado de nginx

Introducir el archivo .htaccess en el servidor.

Introducir el archivo .htaccess en el bloque del servidor de la máquina virtual requiere agregar pseudo-static

include /usr/www/.htaccess #Cámbielo a la ubicación del archivo .htaccess,

Guarde, salga y reinicie nginx

# /usr/local/etc/rc.d/nginx restart

Actualice para ver si puede obtener evidencia de que la sintaxis de la regla de reescritura es correcto Estandarice su software

Las reglas de reescritura de nginx se pueden colocar directamente en la configuración del host, o puede usar includeinru para colocarlas en un archivo separado, guardarlas como un archivo separado y guardarlas en un nuevo archivo (archivo El nombre se puede elegir arbitrariamente, pero se recomienda seguir usando el nombre de archivo .ht.nginx.htaccess),

Salir y reiniciar nginx

# /usr/ local/etc/rc. ht (tenga en cuenta que hay un "punto" al principio del nombre del archivo), porque el servidor filtrará el acceso externo a los archivos que comienzan con .ht de forma predeterminada:

ubicación ~ /\.ht {

denegar todo;

}

Configuración de htaccess de CI

Recientemente, de repente quise usar includeinru para guardarlo como un archivo separado en un nuevo archivo. p>

Recientemente, de repente quise eliminar los enlaces en index.php. Busqué en línea y descubrí que hay muchas soluciones, así que las solucioné.

En primer lugar, hay dos métodos de modificación básicos:

1. En httpd.conf, cambie todos los AllowOverride None a AllowOverride All. Parece que hay tres y luego reinicie. apache

2. En config.php, cambie $config['index_page'] = 'index.php'; a $config['index_page'] = ''

Luego, según la configuración específica:

3.1 Si el sitio web está ubicado directamente en el directorio raíz del servidor, por ejemplo,

RewriteEngine en

RewriteCond $1! ^(index\.php|robots|stafile|upload|\.txt)

RewriteRule ^(. *)$ /index.php/$1 [L]

3.2 Agregar RewriteBase /alias/

3.3 Si está ubicado en el directorio secundario debajo del directorio raíz, modifique las reglas de reescritura a:

RewriteEngine en

¡RewriteCond $1! ^(index\.php|robots|stafile|upload|\.txt)

Reescribir regla ^(. *)$ /mysite/index.php/$1 [L]