NGINX index.php重写规则不会工作

最近我改变了我的networking服务器从cpanel和CENTOS 7,使用nginx与一个名为nDeploy scipt,这与wordpress和托pipe在我的服务器上的网站很好。

我有这个脚本不工作。 由于nginxconfiguration,我的网站正在使用一个主要的index.php访问大多数网页,一些PHP模板解决scheme,但我只得到这个错误: "500 too many redirects"

所以这里是我的.htaccess(当我使用Apache,这使得伎俩):

  Options +FollowSymLinks RewriteEngine On RewriteRule ^([^/]*)\.php$ index.php?page=$1 [L,QSA] 

这是我的nginx conf文件:

 # Downloads rewrite ^/downloads/([0-9]+)/([^/]*)$ /./downloads.php?action=displaycat&catid=$1 last; rewrite ^/downloads$ /./downloads.php last; #Knowledgebase rewrite ^/knowledgebase/([0-9]+)/[a-zA-Z0-9-]+\.html$ /./knowledgebase.php?action=displayarticle&id=$1 last; rewrite ^/knowledgebase/([0-9]+)/([^/]*)$ /./knowledgebase.php?action=displaycat&catid=$1 last; rewrite ^/knowledgebase$ /./knowledgebase.php last; location / { try_files $uri $uri/ /index.php?$args; } location /NaxsiRequestDenied { return 418; } location ~ ^/pingphpfpm$ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/opt/remi/php56/root/var/run/user.sock; } location ~* /\.(?!well-known\/) { deny all; access_log off; log_not_found off; } autoindex on; location ~ \.php$ { include /etc/nginx/conf.d/naxsi_learn.rules; include /etc/nginx/sites-enabled/mysite.com.nxapi.wl; try_files $uri =404; fastcgi_pass unix:/opt/remi/php56/root/var/run/extranet.sock; fastcgi_index index.php; include /etc/nginx/fastcgi_params; } include /etc/nginx/conf.d/cpanel_services.conf; # nginx configuration location / { rewrite ^/([^/]*)\.php$ /index.php?page=$1 break; } 

这是我的index.php文件:

 <?php ob_start(); include "inc/config.php"; $page = $_GET["page"]; if(!isset($page) || $page == "" ){ header("Location:".SITE."index.php"); exit(); } $access = 1; include "inc/template.php"; ob_flush(); ?> 

您已经定义了两个location /块,这是一个错误。 您应该检查错误日志或使用nginx -ttesting您的configuration。

.php结尾的任何URI都将在location ~ \.php$块的location ~ \.php$进行处理,您应该在这里放置rewrite ... break语句。

例如:

 location ~ \.php$ { include /etc/nginx/conf.d/naxsi_learn.rules; include /etc/nginx/sites-enabled/mysite.com.nxapi.wl; rewrite ^/([^/]*)\.php$ /index.php?page=$1 break; try_files $uri =404; fastcgi_pass unix:/opt/remi/php56/root/var/run/extranet.sock; include /etc/nginx/fastcgi_params; }