URL-адреса перенаправления, заканчивающиеся на. php, на новый URL-адрес в Laravel & Nginx - PullRequest
0 голосов
/ 13 июля 2020

Я перехожу с устаревшего кода на Laravel. Устаревший код находился на простых php страницах и, следовательно, все мои страницы имели расширение. php, когда я посещал их по URL: www.example.com/page.php.

Теперь в Laravel , он изменился на что-то другое: www.example.com/my-page

Я использовал приведенный ниже код в Routes, чтобы перенаправить старое расширение на новую страницу

Route::redirect('page.php', '/my-page', 301); // 301 by default

Это не работает ! Это дает мне ошибку: При посещении URL www.example.com/page.php на новом laravel сервере выдает ошибку ниже

В моем Nginx журнале ниже приведена ошибка

2020/07/13 14:53:25 [error] 22935#22935: *70072 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 110.227.222.202, server: example.com, request: "GET /page.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.3-fpm.sock:", host: "example.com"

Как решить это требование: Перенаправьте 301 все устаревшие страницы (их тысячи) с помощью. php расширение до совершенно новой структуры URL.

Ниже мой NGINX Conf

# Expires map
map $sent_http_content_type $expires {
    default                    off;
    text/html                  epoch;
    text/css                   max;
    application/javascript     max;
    ~image/                    max;
}

 server {
   expires $expires;

    server_name example.com;

    root /var/www/example.com/html/public;
    index index.php index.html index.htm index.nginx-debian.html;

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

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


        location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
            }
    }


server {
    if ($host = example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name example.com;
    return 404; # managed by Certbot


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...