Как сделать динамический URL для страницы 404 xhtml? - PullRequest
0 голосов
/ 24 мая 2018

Я определил местоположение для страницы в xml

<error-page>
   <error-code>404</error-code>
      <location>/faces/public/error-page-not-found.xhtml</location>
   </error-page>    
<error-page>

, но я хочу, чтобы URL был таким, как показано ниже:

faces/{variable}/public/error-page-not-found.xhtml

, гдезначение переменной будет меняться в зависимости от ситуации

1 Ответ

0 голосов
/ 28 мая 2018

Этот вопрос немного субъективен, хотя в целом ошибки HTTP обрабатываются сервером и большую часть времени - языком сценариев на сервере (а иногда и непосредственно программным обеспечением сервера HTTP).

Например,Программное обеспечение веб-сервера Apache HTTP позволяет переписывать.Таким образом, вы можете запросить страницу на example.com / 123 , хотя там нет файла "123".В коде, который определит, будет ли у вас что-то, что будет доступно для этого запроса, вы также определите, существует ли ресурс для этого запроса;если нет, то ваш код скриптинга сервера (PHP, ColdFusion, Perl, ASP.NET и т. д.) должен будет вернуть HTTP 404. Затем у кода сервера будет небольшой фрагмент кода, который вы вставите в тело кода, напримеркод, который у вас есть выше.

Вам не нужно перенаправлять на страницу с ошибкой, вы просто ответите ответом HTTP 404 и любым XML, который вы будете использовать, чтобы уведомить посетителя о том, что там ничего нет.Программное обеспечение HTTP-сервера, такое как Apache, не может действительно генерировать код (оно может только ссылаться или переписывать некоторый файл, который будет использоваться для определенных запросов).

Вообще говоря, если у вас есть веб-сайт, который используетбазу данных, в которой вы будете выполнять следующие действия ...

  1. Разбор запрошенного URL-адреса, чтобы вы могли определить, что запросил посетитель.
  2. Определите, следует ли извлекать ресурс для этого запроса (например, сделать запрос к базе данных).
  3. Как только вы узнаете, доступен ли ресурс или нет, вы либо показываете ресурс (например, профиль участника), либо сервер HTTP-статус (401: вообще не вошел в систему)., 403 :, выполнили вход, хотя и не авторизованы, если увеличение привилегий не предоставит разрешения, 404: не найдено и т. Д.) И отобразите соответствующий контент.

Я настоятельно рекомендую прочитать о переписываниях Apache.и PHP, особенно это массив $_SERVER (например, <?php print_r($_SERVER);?>).Вы бы использовали Apache, чтобы переписать все запросы в файл, поэтому даже если они запрашивают / 1, / a, / about, / contact / и т. Д., Все они обрабатываются одним файлом PHP, где вы сначала определяете, какой запрашиваемый URL-адрес.Здесь и в Интернете есть множество вопросов, которые помогут вам действительно быстро приступить к обработке всего этого, например: Перенаправить весь трафик в index.php, используя mod_rewrite .Если вы не знаете, как настроить локальный веб-сервер HTTP, я настоятельно рекомендую заглянуть в XAMPP , это то, с чего я начал много лет назад.Удачи!

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