Apache -> Nginx Migration Permalinks broken (4 posts)

  1. kokoman789
    Posted 2 years ago #

    I've recently decided to move to nginx. So Here's what i did. I had apache with working permalinks in this format: /%year%/%monthnum%/%postname%/

    I used ssh to dump mysql database, which i imported using myphpadmin on the new nginx installation. (the site works and is browsable using default permalink structure, but outside links lead to error 404.

    I then went to settings and changed permalinks to /%year%/%monthnum%/%postname%/ from the default http://sitename.net/?p=123, as i had in previus site.

    Now whenever I click on category it doesn't work (error 404) unless i change back to default (http://sitename.net/?p=123). Even with the default I still lost all the outside links from google and other sites which lead to /%year%/%monthnum%/%postname%/ and now return 404.

    I've read many guides online, using nginx compatibility plugins, 302 redirect plugins, editing .htadcess file, still now luck

    Please help me. This is very frustrating.

    here's my nginx.conf

    user www www;

    worker_processes 4;

    error_log /home/wwwlogs/nginx_error.log crit;

    pid /usr/local/nginx/logs/nginx.pid;

    #Specifies the value for maximum file descriptors that can be opened by this process.
    worker_rlimit_nofile 51200;

    use epoll;
    worker_connections 51200;

    include mime.types;
    default_type application/octet-stream;

    server_names_hash_bucket_size 128;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 32k;
    client_max_body_size 50m;

    sendfile on;
    tcp_nopush on;

    keepalive_timeout 60;

    tcp_nodelay on;

    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 256k;

    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_vary on;

    #limit_zone crawler $binary_remote_addr 10m;

    listen 80;
    server_name sitename.net;
    index index.html index.htm index.php;
    root /home/wwwroot;

    location / {
    try_files $uri $uri/ /index.php?$args;

    location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fcgi.conf;


    location /status {
    stub_status on;
    access_log off;

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

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

    log_format access '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" $http_x_forwarded_for';
    access_log /home/wwwlogs/access.log access;
    include vhost/*.conf;

    thanks in advance

  2. ricardusexa
    Posted 2 years ago #

    You should ask your host to check this out. Do they provide support on this matter?

  3. kokoman789
    Posted 2 years ago #

    thanks for the reply but I rent the server (vps). So i have to fix this manually by myself, don't have any support :/

  4. nickology
    Posted 2 years ago #

    Go to the config file of your virtual host, usually located in /sites-available/ and edit your domain configuration file. In it, in the "server" brackets, add :

    location / {
    try_files $uri $uri/ /index.php?$args;

    Should do the trick.

Topic Closed

This topic has been closed to new replies.

About this Topic