将Apache规则转换为Nginx

时间:2016-08-21 04:51:59

标签: apache .htaccess nginx

我想将Apache Web服务器移动到ngnix webserver,但我如何将这些Apache规则更改为ngnix。 我在我的主站点有一个.htaccess文件,在子目录中有一个文件

主站点.htacess          

上的RewriteEngine
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  !^/index.php
RewriteRule ^(.*)$ zzz.php?hash=$1   [L]
</IfModule>

在子目录.htacess rules

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  !^/index.php
RewriteRule ^(.*)$ host.php?hash=$1 [L,QSA,NC]
</IfModule>

1 个答案:

答案 0 :(得分:0)

不要在nginx中使用重写规则,try_files要快得多:

try_files $uri $uri/ /index.php$is_args$args;

您当然可以根据需要设置任意数量的项目并更新脚本名称,例如:

try_files $uri $uri/ /$uri.php$is_args$args; /index.php$is_args$args =404;

可用于nginx配置的服务器或位置部分: http://nginx.org/en/docs/http/ngx_http_core_module.html#try_files

Nginx没有.htaccess

之类的东西