Рейтинг:0

Веб-сайт PHP не работает должным образом в NGINX, но работает в Apache

флаг cn

Привет, я только что создал приложение для сокращения ссылок. Но когда я пытаюсь перенаправить укороченную ссылку на полный URL-адрес, которым делятся на Facebook, она не работает должным образом. Например : https://bowa.me/c8443 эта ссылка работает нормально но если я поделюсь ссылкой в ​​Facebook и ссылка будет такой https://bowa.me/c8443?fbclid=IwAR0Zm8bGRgrbpQTUX_aVXxTMNFq6-MlRFe0j8e_7wm4anbWmvArPlyDaAHI Эта ссылка не перенаправляет

конфиг нгинкс

место расположения / {
            try_files $uri $uri/ /index.html /index.php;

    }

    расположение ~ \.php$ {
    включить фрагменты/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         }

        местоположение ~ /\.ht {
            отрицать все;
      }

    если (!-e $request_filename) {
            переписать ^/admin/(.*)?$ /admin/index.php?a=$1 break;
            переписать ^/(.*)$ /index.php?a=$1 последним;
            сломать;
    }
Michael Hampton avatar
флаг cz
Вы должны использовать `try_files`, а не `if (!-e $request_filename) ...`
флаг cn
Я использую «if (!-e $request_filename) ..», потому что раньше он загружал страницу вместо перенаправления. Я нашел это решение на форуме. первая ссылка, которой я поделился, работает отлично. а второго нет. и оба работают в apache (xampp).
Рейтинг:1
флаг us

В nginx нужно следовать лучшим практикам nginx, а не пытаться преобразовать практики Apache2 в nginx. Это рецепт от всевозможных проблем.

Вы должны попробовать следующий подход:

# блок для обработки файлов PHP
расположение ~ \.php$ {
    включить фрагменты/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}

местоположение ~ /\.ht {
    отрицать все;
}

# Захватите часть после администратора в переменную и используйте в try_files
расположение ~ ^/admin/(.*)$ {
    try_files $uri $uri/ /admin/index.php?a=$1;
}

# Расположение по умолчанию, захват части URI и использование в качестве аргумента
расположение ~ ^/(.*)$ {
    try_files $uri $uri/ /index.php?a=$1;
}

Порядок важен, nginx использует первое совпадение регулярного выражения из место расположения блоки, которые он находит.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.