php aprende nginx build DZ2.5 cómo configurar pseudoestático, ¡pero falla!
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]