微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Nginx为prestashop重写规则,如何设置,调试和启用?

出于性能原因,我想从Apache更改为Nginx PHP-Fpm.目前我可以看到我的网站的主页(在测试环境中),但是在Apache中工作的任何友好网址现在都不起作用.

我已经将规则转换为Nginx规则,但我没有办法测试它,因为每次点击网站的某个网址都会变成我的浏览器下载PHP文件

例如

我点击www.misite.com/autentication和我的浏览器下载一个PHP文件: – /

环境测试是

> PHP 5.3.17(cli)(建造时间:2012年9月13日06:45:07)
版权所有(c)1997-2012 PHP小组
Zend Engine v2.3.0,版权所有(c)1998-2012 Zend Technologies
> Nginx -v
Nginx版本:Nginx / 1.0.15

这是我的Nginx虚拟主机配置:

server {
        server_name     site.com www.site.com;
        root            /srv/www/site.com/httpdocs;
        access_log      /srv/www/site.com/log/access.log;
        error_log       /srv/www/site.com/log/error.log;
        rewrite_log on;
        location / {
                index  index.html index.htm index.PHP;
                rewrite ^/([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$/img/p/$1-$2$3.jpg? break;
        rewrite ^/([0-9]+)\-([0-9]+)/[_a-zA-Z0-9-]*\.jpg$/img/p/$1-$2.jpg? break;
        rewrite ^/([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$/img/p/$1/$1$2.jpg? break;
        rewrite ^/([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$/img/p/$1/$2/$1$2$3.jpg? break;
        rewrite ^/([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$/img/p/$1/$2/$3/$1$2$3$4.jpg? break;
        rewrite ^/([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$/img/p/$1/$2/$3/$4/$1$2$3$4$5.jpg? break;
        rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$/img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6.jpg? break;
        rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$/img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7.jpg? break;
        rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$/img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8.jpg? break;
        rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?/[_a-zA-Z0-9-]*\.jpg$/img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9.jpg? break;
        rewrite ^/c/([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$/img/c/$1$2.jpg? break;
        rewrite ^/c/([a-zA-Z-]+)/[a-zA-Z0-9-]+\.jpg$/img/c/$1.jpg? break;
        rewrite ^/([0-9]+)(\-[_a-zA-Z0-9-]*)/[_a-zA-Z0-9-]*\.jpg$/img/c/$1$2.jpg? break;
        rewrite ^/([0-9]+)\-[a-zA-Z0-9-]*\.html /product.PHP?id_product=$1 break;
        rewrite ^/[a-zA-Z0-9-]*/([0-9]+)\-[a-zA-Z0-9-]*\.html /product.PHP?id_product=$1 break;
        rewrite ^/([0-9]+)\-[a-zA-Z0-9-]*(/[a-zA-Z0-9-]*)+ /category.PHP?id_category=$1&noredirect=1 break;
        rewrite ^/([0-9]+)\-[a-zA-Z0-9-]* /category.PHP?id_category=$1 break;
        rewrite ^/([0-9]+)__([a-zA-Z0-9-]*) /supplier.PHP?id_supplier=$1 break;
        rewrite ^/([0-9]+)_([a-zA-Z0-9-]*) /manufacturer.PHP?id_manufacturer=$1 break;
        rewrite ^/content/([0-9]+)\-([a-zA-Z0-9-]*) /cms.PHP?id_cms=$1 break;
        rewrite ^/content/category/([0-9]+)\-([a-zA-Z0-9-]*) /cms.PHP?id_cms_category=$1 break;
        rewrite ^/pagina-no-encuentra$/404.PHP break;
rewrite ^/direccion$/address.PHP break;
        rewrite ^/direcciones$/addresses.PHP break;
        rewrite ^/autenticacion$/authentication.PHP break;
        rewrite ^/mas-vendidos$/best-sales.PHP break;
        rewrite ^/carro-de-la-compra$/cart.PHP break;
        rewrite ^/contactenos$/contact-form.PHP break;
        rewrite ^/descuento$/discount.PHP break;
        rewrite ^/estado-pedido$/guest-tracking.PHP break;
        rewrite ^/historial-de-pedidos$/history.PHP break;
        rewrite ^/identidad$/identity.PHP break;
        rewrite ^/fabricantes$/manufacturer.PHP break;
        rewrite ^/mi-cuenta$/my-account.PHP break;
        rewrite ^/nuevos-productos$/new-products.PHP break;
        rewrite ^/carrito$/order.PHP break;
        rewrite ^/devolucion-de-productos$/order-follow.PHP break;
        rewrite ^/pedido-rapido$/order-opc.PHP break;
        rewrite ^/vales$/order-slip.PHP break;
        rewrite ^/contrasena-olvidado$/password.PHP break;
        rewrite ^/promocion$/prices-drop.PHP break;
        rewrite ^/buscar$/search.PHP break;
        rewrite ^/mapa-del-sitio$/sitemap.PHP break;
        rewrite ^/tiendas$/stores.PHP break;
        rewrite ^/proveedores$/supplier.PHP break;
        error_page 404 = /404.PHP;
        }
        location ~ \.PHP${
                include /etc/Nginx/fastcgi_params;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.PHP;
                fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }
}

最糟糕的问题是我没有一些调试问题的经验: – /非常新的Nginx
任何评论将不胜感激,

谢谢

解决方法:

好的,我已经解决了自己的问题!顺便说一下,它只是改变规则的位置

我已经移动了所有的规则

location /{
.... rules...
}

server {

...here rules works...

}

然后我重新加载Nginx就是这样!

服务Nginx重新加载

我希望这对像我这样绝望的人有用.

最好的祝福,

鲁本

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐