>백엔드 개발 >PHP 튜토리얼 >nginx如何隐藏index.SegmentFault

nginx如何隐藏index.SegmentFault

WBOY
WBOY원래의
2016-06-06 20:25:541202검색

我用下面的代码实现隐藏php框架的index.php的目的,但是效果可以了,就是如果把网站首页由index.php换成index.html后,刷新网站首页,由于index.php不存在了,就会出现找不到页面的错误。怎么设置让.html .htm文件不要转向index.php呢,就是说当首页是index.php时自动隐藏转向,如果是index.html .htm之类的页面,就不要转向了呢。

server

<code>{
    listen 80;
    #listen [::]:80;
    server_name www.abcword.com abcword.com;
    index index.html index.htm index.php default.html default.htm default.php;
    root  /home/wwwroot/www.abcword.com;

    *if (-f $request_filename/index.php){
           rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
            rewrite (.*) /index.php;
     }*
</code>
<code>    include other.conf;
    #error_page   404   /404.html;
    location ~ [^/]\.php(/|$)
    {
        # comment try_files $uri =404; to enable pathinfo
        try_files $uri =404;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        #include pathinfo.conf;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }

    access_log  /home/wwwlogs/www.abcword.com.log  access;
}
</code>

回复内容:

我用下面的代码实现隐藏php框架的index.php的目的,但是效果可以了,就是如果把网站首页由index.php换成index.html后,刷新网站首页,由于index.php不存在了,就会出现找不到页面的错误。怎么设置让.html .htm文件不要转向index.php呢,就是说当首页是index.php时自动隐藏转向,如果是index.html .htm之类的页面,就不要转向了呢。

server

<code>{
    listen 80;
    #listen [::]:80;
    server_name www.abcword.com abcword.com;
    index index.html index.htm index.php default.html default.htm default.php;
    root  /home/wwwroot/www.abcword.com;

    *if (-f $request_filename/index.php){
           rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
            rewrite (.*) /index.php;
     }*
</code>
<code>    include other.conf;
    #error_page   404   /404.html;
    location ~ [^/]\.php(/|$)
    {
        # comment try_files $uri =404; to enable pathinfo
        try_files $uri =404;
        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        #include pathinfo.conf;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }

    access_log  /home/wwwlogs/www.abcword.com.log  access;
}
</code>

请问下面的slim nginx配置示例是什么意思,9000那个端口又是什么意思。http://docs.slimframework.com/routing/rewrite/#nginx

server {

<code>listen       80;
server_name  www.mysite.com mysite.com;
root         /path/www.mysite.com/public_html;

try_files $uri /index.php;

# this will only pass index.php to the fastcgi process which is generally safer but
# assumes the whole site is run via Slim.
location /index.php {
    fastcgi_connect_timeout 3s;     # default of 60s is just too long
    fastcgi_read_timeout 10s;       # default of 60s is just too long
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;    # assumes you are running php-fpm locally on port 9000
}</code>

}

<code>location /
{
        if (!-e $request_filename) {
                rewrite ^(.*)$ /index.php/$1 last;
                break;
        }
}</code>

是这个样么?

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.