Cómo configurar pseudoestático en nginx build DZ2.5 en phpStudy pero no tiene éxito
Nginx (pronunciado igual que motor x) fue desarrollado por Igor Sysoev en lenguaje C para el sitio Rambler.ru, el segundo motor de búsqueda más visitado en Rusia, servidor proxy de correo electrónico (IMAP/POP3/SMTP). que publica su código fuente bajo una licencia similar a BSD y se distribuye bajo una licencia similar a BSD. Se caracteriza por ser pequeño y eficiente, ocupar menos memoria y tener fuertes capacidades de concurrencia. De hecho, las capacidades de concurrencia de Nginx funcionan mejor entre servidores web del mismo tipo. Los usuarios de sitios web de Nginx en China continental incluyen: Sina, NetEase, Taobao, Tencent, etc. La primera versión pública de Nginx 0.1.0 se lanzó el 4 de octubre de 2004. Conocido por su estabilidad, amplio conjunto de funciones, archivos de configuración de muestra y bajo consumo de recursos del sistema. El 1 de junio de 2011, se lanzó Nginx 1.0.4. De esto podemos ver los beneficios de utilizar la arquitectura LNMP.
En cuanto a la tecnología pseudoestática, se desarrolló originalmente después de la aparición de los lenguajes dinámicos para mejorar la comodidad del acceso de los usuarios y la facilidad de uso de las arañas de búsqueda. Los componentes pseudoestáticos incluyen ISAPI_Rewrite, IIRF de código abierto, etc. Sin embargo, la versión ISAPI_Rewrite Lite 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. Podemos usar las reglas. en .htaccess para CI pseudoestático
RewriteEngine en
RewriteCond $1 !^(index\\.php|system\\.php|images|skin|js|ls. |swfupload|adjunto|aplicación|robots \\.txt)
RewriteRule ^(.*)$ /fx/index.php/$1 [L]
Nota: RewriteRule ^( .*)$ /webdir/index El webdir en .php/$1 [L] es el directorio de su programa CI
La configuración pseudoestática del servidor Nginx primero debe configurar nginx para abrir path_info (LNMP está habilitado de forma predeterminada )
, puede consultar El siguiente método proviene de ZK:
Supongamos que nuestro subdirectorio se llama zk
ubicación /zk/ {
raíz /var/www/html/;
index index.html index.htm index.php;
if ($request_filename !~* /giftbox/(javascript|css |imágenes|estilo|upimg|artDialog|fckeditor|archivos de usuario |crontab|robots\.txt|index\.php)) {
reescribir ^/(.*)$ /zk/index.php?$1 last;
} La ruta del directorio de p>
root es la ruta del directorio raíz y no es necesario cambiarla.
Adjuntamos la regla pseudoestática para el directorio de inicio
#reescribir ^/$ /index.php al final;
#Lo siguiente es para evitar ciertos carpetas sean visitadas directamente
#rewrite ^/(?!index\.php|images|robots\.txt|js|css|upimg|artDialog|style)(.*)$ /index.php /$1 último;
Primero necesitas configurar nginx para habilitar path_info (lnmp tiene path_info habilitado de forma predeterminada)
Regla pseudoestática:
if ($ request_uri ~* ^/system)
p>{
reescribir ^/(.*)$ /index.php?/$1 último;
romper;
}
if (!-e $request_filename)
{
reescribir ^/(.*)$ /index.php ?/$1 último;
break;
}
Muchas personas encontraron información en Internet de que nginx actualmente no admite archivos .htaccess para fines pseudoestáticos. También creo que no debería ser el caso. Nginx debería ser el servidor WEB más utilizable. Lo busqué en Google y encontré información de que nginx puede admitir completamente archivos .htaccess. Archivo de configuración pseudoestático para nginx No hay diferencia en el nombre, solo especifique la ruta correspondiente. Siga los siguientes pasos para pasos específicos:
1. Cree un nuevo archivo .htaccess e ingrese las reglas en él. , como:
# reescritura de regla de reescritura de nginx ^(.*?)/article/.*?-(\d )-(\d )\.html$ $1/show.html?id= $2amp página=$3 descanso; reescribir ^( .*?)/category/.*?-(\d )-(\d )\.html$ $1/list.html?id=$2amp; ; reescribir ^(.*?)/tag/ ([^/] )/?$ $1/tag.html?w=$2 break; lt; span id="more-1758"gt; (.*?)/tag/([^ /] )/(\d )$ $1/tag.html?w=$2amp; page=$3 break; # finaliza la regla de reescritura de nginx
Guarda 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
Introduzca el archivo .htaccess en el bloque del servidor en la máquina virtual donde necesita agregar pseudoestático
incluya /usr/www/.htaccess #Cambie esto a la ubicación de su archivo .htaccess,
Guardar, salir y reiniciar nginx
# /usr/local/etc/rc.d/nginx restart
Actualizar y ver si funciona normalmente para probar su reescritura La sintaxis de la regla es correcta
Puede colocar las reglas de reescritura de nginx directamente en la configuración del host o en un archivo separado usando includeinru. Cuando guarde como un archivo separado, guárdelo en un archivo nuevo (nombre de archivo). Puede elegirlo arbitrariamente, pero se recomienda utilizar un nombre de archivo que comience con .ht (tenga en cuenta el "punto"), porque este servidor filtra el acceso externo a archivos que comienzan con .ht de forma predeterminada:
ubicación ~ /\ .ht {
denegar todo;
}
Configuración de htaccess de CI
Recientemente, de repente quiero eliminar index. php desde el enlace Busqué en línea y encontré muchas soluciones. Permítanme ordenarlas.
Los primeros son dos puntos de modificación básicos:
1. En httpd.conf, cambie todo AllowOverride. Ninguno Parece haber tres formas de permitir Anular todo y luego reiniciar Apache
2. Cambie $config['index_page'] = 'index.php' en config.php a $config['index_page'. '] = '';
Luego, de acuerdo con la configuración específica:
3.1 Si el sitio está ubicado directamente en el directorio raíz del servidor, como /www/, entonces la siguiente configuración funcionará:
RewriteEngine en
RewriteCond $1 !^(index\.php|robots|stafile|upload|\.txt)
RewriteRule ^(. *)$ /index.php/$1 [L]
3.2 Si se establece un alias, agregue RewriteBase/alias/
3.3 Si está ubicado en el directorio de segundo nivel en en el directorio raíz, modifique la regla de reescritura a:
RewriteEngine en
RewriteCond $1 !^(index\.php|robots|stafile|upload|\.txt)
ReescribirRegla ^(.*)$ /misitio/ index.php/$1 [L]