nginx users with mod-rewrite friendly URLs : could you please post your virtual host file?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • sub_ubi
    Member
    • Dec 2004
    • 77
    • 3.0.3

    nginx users with mod-rewrite friendly URLs : could you please post your virtual host file?

    I'm having a heck of a time getting mod-rewrite friendly URLs working in nginx. I followed this post,



    Code:
    rewrite    /threads/.*                   /showthread.php?$uri&$args     last;
    rewrite    /forums/.*                    /forumdisplay.php?$uri&$args   last;
    rewrite    /members/.*                   /member.php?$uri&$args         last;
    rewrite    /blogs/.*                     /blog.php?$uri&$args           last;
    rewrite    /entries/.*                   /entry.php?$uri&$args          last;
    rewrite    ^/(?:(.*?)(?:/|$))(.*|$)$     /$1.php?r=$2                   last;
    but am not having much luck. 404's everywhere, or images don't work, or something wonky. My vhost file is becoming a mess. Can someone with mod-rewrite urls working post their full vhost so I can see where to put everything?

    Thanks!
  • sub_ubi
    Member
    • Dec 2004
    • 77
    • 3.0.3

    #2
    my current vhost file if anyone wants to see the nightmare up close

    Code:
    server {
            server_name [url]www.mysite.com;[/url]
            return 301 $scheme://mysite.com$request_uri;
    }
    server {
            listen 80;
            listen [::]:80;
    
            # SSL configuration
            #
            # listen 443 ssl default_server;
            # listen [::]:443 ssl default_server;
            #
            # Note: You should disable gzip for SSL traffic.
            # See: [url]https://bugs.debian.org/773332[/url]
            #
            # Read up on ssl_ciphers to ensure a secure configuration.
            # See: [url]https://bugs.debian.org/765782[/url]
            #
            # Self signed certs generated by the ssl-cert package
            # Don't use them in a production server!
            #
            # include snippets/snakeoil.conf;
    
            root /var/www/mysite;
    
            # some unique logging
            access_log /var/log/nginx/mysite_access.log;
            error_log /var/log/nginx/mysite_error.log;
    
            # Add index.php to the list if you are using PHP
            index index.php index.html index.htm index.nginx-debian.html;
    
            server_name mysite.com;
    
            location / {
                    #for vbulletin
                    # First attempt to serve request as file, then
                    # as directory, then fall back to displaying a 404.
                    try_files $uri $uri/ =404;
    
                   #my attempt at mod-rewrite URLs, currently failing
            rewrite    /threads/.*                   /showthread.php?$uri&$args     last;
            rewrite    /forums/.*                    /forumdisplay.php?$uri&$args   last;
            rewrite    /members/.*                   /member.php?$uri&$args         last;
            rewrite    /blogs/.*                     /blog.php?$uri&$args           last;
            rewrite    /entries/.*                   /entry.php?$uri&$args          last;
            rewrite    /(?:(.*?)(?:/|$))(.*|$)$     /$1.php?r=$2                   last;
            }
    
            # for amember software
           location /amember { try_files not-existing-file [USER="63029"]php[/USER];}
           location ~* ^/amember/.*\.(js|ico|gif|jpg|png|css|swf|csv)$ {}
           location ~* ^/amember/setup/index.php$ { try_files not-existing-file [USER="63029"]php[/USER]; }
           location ~* ^/amember/js.php { try_files not-exiting-file [USER="63029"]php[/USER]; }
           location ~* ^/amember/index.php$ { try_files not-existing-file [USER="63029"]php[/USER]; }
           location ~* ^/amember/public.php$ { try_files not-existing-file [USER="63029"]php[/USER]; }
    
           location ~* ^/amember/public { rewrite ^.*$ /amember/public.php; }
           location ~* ^/amember/setup { rewrite ^.*$ /amember/setup/index.php; }
           location ~* ^/amember { rewrite ^.*$ /amember/index.php; }
    
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            location ~ \.php$ {
                    include snippets/fastcgi-php.conf;
                    #with php5.6-fpm:
                    fastcgi_pass unix:/run/php/php5.6-fpm.sock;
                    fastcgi_split_path_info ^(.+\.php)(.*)$;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
                    fastcgi_param QUERY_STRING $query_string;
                    fastcgi_param REQUEST_METHOD $request_method;
                    fastcgi_param CONTENT_TYPE $content_type;
                    fastcgi_param CONTENT_LENGTH $content_length;
                    fastcgi_intercept_errors on;
                    fastcgi_ignore_client_abort off;
                    fastcgi_connect_timeout 60;
                    fastcgi_send_timeout 180;
                    fastcgi_read_timeout 180;
                    fastcgi_buffers 256 16k;
                    fastcgi_buffer_size 32k;
                    fastcgi_temp_file_write_size 256k;
            }
            # more amember stuff
                    location [USER="63029"]php[/USER] {
                    fastcgi_pass unix:/run/php/php5.6-fpm.sock;
            #       fastcgi_pass php-handler;
                    fastcgi_split_path_info ^(.+\.php)(.*)$;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
                    fastcgi_param QUERY_STRING $query_string;
                    fastcgi_param REQUEST_METHOD $request_method;
                    fastcgi_param CONTENT_TYPE $content_type;
                    fastcgi_param CONTENT_LENGTH $content_length;
                    fastcgi_intercept_errors on;
                    fastcgi_ignore_client_abort off;
                    fastcgi_connect_timeout 60;
                    fastcgi_send_timeout 180;
                    fastcgi_read_timeout 180;
                    fastcgi_buffers 256 16k;
                    fastcgi_buffer_size 32k;
                    fastcgi_temp_file_write_size 256k;
                    }
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            location ~ /\.ht {
                    deny all;
            }
    }

    Comment

    Related Topics

    Collapse

    Working...