nginx rewrite 隐藏index.php,利用pathinfo让url更友好
2013-11-30 00:00
701 查看
网上找了好多资料,觉得有一个挺靠谱的,代码如下:
结果当我使用上面的配置时,重启nginx却遇到报错(不知道你们有遇到过没有):
Restarting nginx: nginx: [emerg] unknown directive "if(!-e" in /etc/nginx/sites-enabled/my:8
而且无论怎么修改也还是报错,所以心灰意冷,就放弃了这个方法,不过问题还是要解决的。。
然后,灵光一闪,我突然想到ubuntu下刚装完nginx时,/etc/nginx/sites-available/default 配置文件中有这样一段代码:
我是这样理解上面的代码的,访问一个uri时,如果这个uri不存在, 则访问根目录下的index.html的资源。
根据我的理解,我进行了大胆的尝试,于是就有了如下代码:
配置完,保存,重启nginx,然后访问url: http://my/Home/Index/index 得到的结果是 http://my/index.php/Home/Index/index的内容。。
rewrite成功
这个方法有什么弊端暂时不知道。。
如果有大神知道的,麻烦告诫一下!
在此谢过啦。。
server { ... location / { #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则 if(!-e $request_filename){ #重写规则,隐藏index.php...因为看着跟apache的差不多,所以觉得听靠谱的。 rewrite ^/(.*)$ /index.php/$1 last; } } ... }
结果当我使用上面的配置时,重启nginx却遇到报错(不知道你们有遇到过没有):
Restarting nginx: nginx: [emerg] unknown directive "if(!-e" in /etc/nginx/sites-enabled/my:8
而且无论怎么修改也还是报错,所以心灰意冷,就放弃了这个方法,不过问题还是要解决的。。
然后,灵光一闪,我突然想到ubuntu下刚装完nginx时,/etc/nginx/sites-available/default 配置文件中有这样一段代码:
server { ... location / { try_files $uri $uri/ /index.html; } ... }
我是这样理解上面的代码的,访问一个uri时,如果这个uri不存在, 则访问根目录下的index.html的资源。
根据我的理解,我进行了大胆的尝试,于是就有了如下代码:
server { ... location / { try_files $uri /$uri /index.php/$uri; } ... }
配置完,保存,重启nginx,然后访问url: http://my/Home/Index/index 得到的结果是 http://my/index.php/Home/Index/index的内容。。
rewrite成功
这个方法有什么弊端暂时不知道。。
如果有大神知道的,麻烦告诫一下!
在此谢过啦。。
相关文章推荐
- thinkphp nginx实现url pathinfo模式并隐藏url index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
- ThinkPHP5 Nginx下的配置——支持pathinfo访问和隐藏入口文件index.php的rewrite规则
- nginx配置pathinfo模式和隐藏index.php
- CI框架 .htaccess 隐藏url在index.php解决方案
- YII2 nginx配置pathinfo模式与隐藏入口index.php
- CI(4)隐藏URL里面的index.php过程总结
- Nginx+php-fpm下PATHINFO的配置(隐藏index.php,thinphp)
- ThinkPHP下隐藏index.php以及URL伪静态
- Codeigniter 隐藏URL中index.php