2012-02-19 4 views
-1

Я заметил, что большинство фреймворков (например, CodeIgniter) предоставляют файл по умолчанию .htaccess, но не заставляют его использовать.Неправильно ли принудительно использовать .htaccess

  1. Почему они не вынуждают его использовать?
  2. Работает ли .htaccess на всех серверах?
  3. Каковы альтернативы?
+1

Реальный вопрос: почему * должен * заставить их использовать? – JJJ

+0

@Juhana, Чтобы заблокировать доступ к папкам фрейма, например, вместо этого раздражает 'if (! Isset (a_constant_that_must_exists)) {exit(); } '. Или избегать этих 'index.html' по всей структуре папок, которые просто печатаются (доступ к каталогу запрещен). – Shoe

+0

Я не вижу, что это касается .htaccess. Папки Framework уже находятся за пределами корня документа (или должны быть). – JJJ

ответ

3

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

Тот факт, что рамки нужно файлы .htaccess на самом деле раздражает проблема из мира PHP, поскольку 99% всех приложений хранятся внутри корня документа, тем самым предоставляя пользователям HTTP доступ ко всем их файлам, если они каким-то образом не ограничены (например, через .htaccess). С другой стороны, если у вас есть приложение на основе python на основе WSGI, вы обычно храните его за пределами корня документа и «монтируете» его в определенную папку в корне документа - таким образом, к одному файлу нельзя обращаться напрямую через HTTP.

+0

Предположим, что мы имеем дело с каркасом, который требует: «PHP 5.3.3+ и Apache» для работы. Могу ли я быть на 90% уверенным, что мой файл .htaccess будет работать? – Shoe

+1

Если это для обеспечения безопасности или в противном случае очень важная функция, не полагайтесь на нее. '.htaccess' может быть отключен с помощью директивы типа« AllowOverride none », которая на самом деле является значением по умолчанию на сервере Ubuntu. – Lekensteyn

+0

Да, вы можете предположить, что ваш htaccess будет работать, а если нет, люди будут отключать файлы htaccess специально и будут знать, что им нужно скопировать и вставить содержимое в свою конфигурацию vhost. – ThiefMaster

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

  2. См. # 1. Кроме того, они не работают одинаково, если вы не используете Apache.

  3. Очень широкий вопрос. Если вы используете Apache, это единственный способ настроить сервер, не являясь привилегированным пользователем. Если вы не используете Apache, это зависит от конкретного веб-сервера.

Немного полезных ссылок;

+0

3), да, я подумал об этом сам. Тогда возникает вопрос: в зависимости от конкретного веб-сервера, каковы альтернативы? Можете ли вы перечислить их или связать с ними? – Shoe

+0

3) Для чего вам это нужно? Например, для nginx вам нужно будет отредактировать конфигурацию nginx (например, Basic auth) или php.ini (для настроек PHP). – Lekensteyn

+0

@JeffPigarelli Добавил некоторую информацию о нескольких веб-серверах и о том, как они относятся к htaccess к моему ответу. –

3

1) Я должен согласиться с Юханой. Возникает вопрос: зачем им это заставлять? Нет необходимости ограничивать рамки такими вещами.

2) Я слышал, что они не работают на сервере IIS, где вам нужно перевести его в специальные файлы конфигурации.

3) Это зависит от того, что вы делаете. Но из-за того, что вам действительно не нужны файлы .htaccess, просто позвольте им быть возможной альтернативой.

Смежные вопросы