Как вы думаете, где лучше всего переписать URL? - PullRequest
2 голосов
/ 24 июня 2009

Я полный нуб в этом вопросе, и мне интересно, если я должен сделать это, где я положил код:

  • В файле конфигурации виртуального хоста / apache?
  • В файле httaccess?
  • Перенаправить все URL-адреса в одну точку входа и проанализировать ее на языке сценариев?

Какие плюсы и минусы?

Ответы [ 5 ]

3 голосов
/ 24 июня 2009

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

2 голосов
/ 24 июня 2009

Это зависит от того, что именно вы хотите сделать.

Правила перезаписи должны идти в конфигурации, относящейся к корню каталога / сайта, которая обычно является вашей конфигурацией vhost или htaccess (в зависимости от настройки).

Выполнение этого с помощью сценария имеет смысл, только если ваше перенаправление основано на дополнительной информации , такой как сопоставление 404 с базой данных недавно перемещенных страниц или 404-URI для поиска какого-либо рода.

1 голос
/ 24 июня 2009

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

Лично я предпочитаю иметь каждый параметр конфигурации в конфигурационном файле virtualhost, но это хорошо, только если у вас есть root-доступ.

1 голос
/ 24 июня 2009

ОК, поэтому я поместил некоторую сводку того, что я прочитал на SO:

Перезапись URL для перенаправления:

Лучше поместить это в конфигурацию Apache. Использование .htaccess является наиболее гибким способом, но ваш Apache conf должен разрешить, если нет, установить перезапись в файле Vhost.

Перезапись URL для управления ресурсами:

Когда речь идет об управлении не найденным содержимым, праве доступа или получении чистого URL-адреса для доступа к динамическому содержимому, вам необходимо установить переписывание в файле сценария вашего приложения, поскольку именно здесь у вас есть доступ к API для обработки такого рода вещей. .

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

0 голосов
/ 26 ноября 2011

Зависит от того, нужно ли вам также перезаписывать исходящие URL-адреса (изменение ссылок на самих HTML-страницах), и в этом случае такой инструмент, как MOD_REWRITE, не подойдет вам, и вам придется использовать «внутренний» или «нативный серверный» инструмент, в случае Java вы бы использовали что-то вроде PrettyFaces или Rewrite .

Эти инструменты могут также выполнять тот же тип входящей перезаписи (например, отправка перенаправлений на новые страницы или переадресация на новый внутренний ресурс, чтобы пользователи не знали, что они видят изменение адреса / URL-адреса.

Однако мое общее эмпирическое правило заключается в том, что если правила перезаписи URL-адреса должны быть доступны во время работы приложения, вы должны использовать что-то вроде MOD_REWRITE, но если правила применяются только к самому этому приложению, то они принадлежат внутри приложения, и вы должны использовать нативный инструмент.

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