Apache到nginx - htaccess不起作用,也没有尝试转换

时间:2012-03-05 15:07:01

标签: apache .htaccess nginx

我正在尝试使用通常在nginx上运行Apache的内部框架。我一直没有转换htaccess的运气。

我试过http://www.anilcetin.com/convert-apache-htaccess-to-nginx/但没有用。然后我自己去做(提出不同的规则),但这也不起作用。这是我现在拥有的:

            index index.php;

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

            location ~ ^/(assets|robots\.txt|favicon\.ico|license.txt) {

            }

             location ~ \.php$ {
              fastcgi_pass   unix:/var/run/php5-fpm.sock;
              fastcgi_index index.php;
              fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
              include fastcgi_params;
             }

我试图转换的htaccess是:

DirectoryIndex index.php
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico|license.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 
RewriteCond %{QUERY_STRING} .
RewriteRule ^$ /? [L]

有人会碰巧知道什么是错的或我应该做什么吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

你几乎不应该在Nginx配置中使用if。试试这个 -

location / {
    try_files $uri /index.php;
}

其余部分不会重写某些文件,因此不需要长丑陋的正则表达式位置块。