#php #url #cakephp #parameters
#php #url #cakephp #параметры
Вопрос:
На моем сайте есть статьи, и я бы хотел, чтобы URL был таким: example.com /(идентификатор статьи)/(название статьи)
Есть две причины, по которым я хотел бы, чтобы URL были такими, SEO и удобочитаемость.
Эта настройка близка к настройке stackoverflow. И точно так же, как в stackoverflow, я не хочу, чтобы заголовок был обязательным, но если он не включен в, я хочу, чтобы серверная часть добавляла заголовок к URL.
Чтобы понять, что я имею в виду, возьмите URL текущей страницы, удалите из нее заголовок и перейдите по этому новому URL. Если вы заметили, что при обновлении страницы заголовок был автоматически добавлен к URL.
Когда я думаю о том, как этого добиться, для этого требуется два запроса. Первый запрос получит заголовок на основе идентификатора, затем сформирует новый URL и перенаправит на него. Второй URL снова запросит базу данных с идентификатором, на этот раз отображающим статью.
Это единственный способ? Могу ли я добавить дополнительный параметр без фактического перенаправления?
Примечание: Я использую CakePHP
Ответ №1:
Я думаю, что да, это единственный способ.
Вызов # 1 для example.com /(идентификатор статьи): сервер запросит идентификатор в базе данных, увидит, что URL не является каноническим [1] и выполнит перенаправление.
Вызов # 2 для example.com /(идентификатор статьи) / (название статьи) будет вести себя как обычно, что означает еще несколько запросов к базе данных…
^ Я предлагаю вам сохранить сгенерированный URL-путь к статье, чтобы вы могли использовать его и в других местах.
Таким образом, если заголовок не был указан, путь был бы просто «/(article id)», и вам не нужно было бы делать перенаправление сюда.