Для перезаписи URL используйте .htaccess или PHP, чтобы определить используемый контент? - PullRequest
5 голосов
/ 01 февраля 2012

При использовании перезаписи URL-адреса для украшения, есть ли какие-либо мысли о том, следует ли выполнять вычисления содержимого в сценарии PHP или жестко закодировать его в файл .htaccess?

Например, WP добавляет простое правило в файл .htaccess

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

Который направляет все на страницу index.php. Затем он имеет PHP-скрипт (canonical.php), который анализирует $ _SERVER ['REQUEST_URI'], чтобы затем выяснить, какой контент на самом деле поднять.

Вместо того, чтобы использовать PHP для обработки всего этого, его можно было бы ввести непосредственно в файл .htaccess, передавая элементы запроса из URL, аналогично:

RewriteRule ^products/([0-9][0-9])/$ /productinfo.php?prodID=$1 

Кто-нибудь знает преимущества / недостатки двух методов? Я думаю, что метод PHP предлагает немного больше гибкости, но я могу ошибаться. Я понятия не имею, что имеет больше накладных расходов, хотя.

Ответы [ 2 ]

2 голосов
/ 06 февраля 2012

Мое мнение таково, что обработка PHP намного лучше.Единственный возможный минус в том, что он может быть медленнее, но не так сильно, во время генерации страниц вы не заметите никакой разницы.Но есть и недостатки:

  1. Если ваш сайт растет, вы должны каждый раз вводить новые правила в .htaccess, что не удобно.Если вы, например, хотите добавить еще один аргумент GET к некоторому вызову скрипта, вам придется снова изменить правила.
  2. это не удобно, когда вы переходите с одного хоста на другой.в некоторых случаях вам потребуется изменить структуру каталогов и все правила, которые от нее зависят.
  3. , если вы по какой-то причине решите переместить свой сайт с Apache на nginx, IIS или какой-либо другой серверу вас будет много проблем с преобразованием правил .htaccess в какой-либо другой формат сервера.

Так что определенно лучше обрабатывать их с помощью PHP.

0 голосов
/ 01 февраля 2012

2-й метод, безусловно, не очень хороший. Поскольку требуется, чтобы вы добавляли новое правило в .htaccess каждый раз, когда вам нужен новый раздел на вашем сайте.

Например, вы можете добавить новую category, которую вы должны добавить

RewriteRule ^categories/([\w-]+)/?$ categories.php

Что касается производительности / накладных расходов, я думаю, вам не нужно микрооптимизировать подобные вещи. В большинстве случаев, когда речь идет о проблемах с производительностью, это всегда связано с проблемами с БД или вводом-выводом (если в приложении нет действительно плохого кода, который замедляет работу сайта).

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