перенаправление страницы на 404 - PullRequest
0 голосов
/ 03 февраля 2020

у меня есть сайт под названием example.com на разных языках

когда я звоню example.com/en - он открывает версию eng

, если я пишу example.com/fr - это открывает французскую версию

это одностраничный проект. Так что все ловится в индексе. php. Я читаю URL, взрываю его и получаю запрошенный язык. все работает нормально на localmachine

на моем сервере, если я вызываю example.com/en - он пытается открыть путь, который не существует, а затем я получаю ошибку 404

что делать я должен сделать так, чтобы мой код работал как на локальной машине?

Ответы [ 3 ]

0 голосов
/ 04 февраля 2020

Чтобы начать отладку вашей проблемы, используйте меню разработчика вашего браузера ... то, которое позволяет вам видеть «сетевые запросы».

С его помощью вы очень быстро сможете увидеть именно то, что URL был запрошен с сервера, и вы увидите ответ 404.

Итак, ваша первая проверка: * "ну, было , что URL, который я ожидал запросить? "*

Затем, если это так, проверьте код на стороне сервера, чтобы определить, почему он не может соответствовать этому URL.

Помните также , что, когда ваш клиент веб-браузера запрашивает такие вещи, как blahblah/fr, этот бит /fr будет рассматриваться как (например, Apache) как другое <Location>. Внимательно просмотрите конфигурационную документацию для выбранного веб-сервера, чтобы убедиться, что он знает, как обрабатывать URL-адреса, которые он увидит. (Есть несколько способов сделать это, поэтому я не могу быть более конкретным c, так как вы не дадите нам никаких подсказок относительно настроек на стороне сервера ...)

0 голосов
/ 04 февраля 2020

Пожалуйста, добавьте следующее к htaccess:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Примечание: Если ваш веб-хостинг не поддерживает опцию FollowSymlinks, попробуйте заменить его на Options + SymLinksIfOwnerMatch.

Это в основном конфигурация, которая работает с Laravel framework. Однако, это должно работать и для вас, но вам нужно правильно указать путь в третьем правиле перезаписи.

0 голосов
/ 03 февраля 2020

Типичный триггер для сообщения об ошибке 404 - это когда контент веб-сайта был удален или перемещен на другой URL-адрес. Есть и другие причины, по которым может появиться сообщение об ошибке. К ним относятся:

  • URL-адрес или его содержимое (например, файлы или изображения) были удалены или перемещены (без соответствующей корректировки внутренних ссылок)

Для решения этой проблемы

  • Создайте страницу с ошибкой ('404. html' или '404. php') в каталоге root (если он еще не существует).
  • Откройте файл .htaccess (или создайте его при необходимости) в каталоге root, введите его в ErrorDocument 404 /404.html и сохраните изменения. Страница ошибки будет сгенерирована с этим кодом.
  • Чтобы проверить, сработала ли она, попробуйте зайти на недоступную веб-страницу, и, надеюсь, в браузере должно появиться сообщение об ошибке 404.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...