Apache .htaccess - PullRequest
       6

Apache .htaccess

0 голосов
/ 30 мая 2010

У меня проблема с htaccess.

Моя структура каталогов выглядит так:

/
HEADER.html
README.html
/stackoverflow/
/stackoverflow/.htaccess

.htaccess

ServerSignature Off
Options +Indexes
HeaderName /HEADER.html
IndexIgnore HEADER.html
ReadmeName /README.html
IndexIgnore /README.html
IndexOptions +FancyIndexing
AddCharset UTF-8 .txt
IndexIgnore *.xml
IndexIgnore *.php

Мой основной каталог - / stackoverflow /, когда я перехожу к этому каталогу через браузер, я включаю HEADER.html и README.html на каждом сайте / каталогах в / stackoverflow /, это прекрасно работает.

Я добавил некоторый php-код в мой HEADER.html (который находится в корневом каталоге /), я пытаюсь добавить в htaccess:

Приложение AddType / x-httpd-php .html .php .htm

Это не работает, я думаю, потому что HEADER.html находится в корне.

Если я пытаюсь добавить AddType ... в /.htaccess (а не в /stackoverflow/.htaccess), он перезаписывает мои правила /stackoverflow/.htaccess. Зачем? Как я могу добавить правило AddType к моему /stackoverflow/.htaccess в html-файл Apache для разбора как php-файл?

Ответы [ 3 ]

2 голосов
/ 30 мая 2010

Ваш анализатор PHP будет игнорировать файл .html, для которого он предназначен. .html должно быть обработано не обработано, если вы хотите добавить дополнительную логику в ваш заголовочный файл, вам придется преобразовать его в .phtml или .php. Вы также можете создать новый заголовочный файл, который затем просто включает HTML.

По поводу вопроса о переопределении .htaccess так работает apache mod_rewrite. Это иерархическая система, которая будет загружать первую найденную систему, начиная с / двигаясь к запрошенному файлу.

0 голосов
/ 30 мая 2010

Файл .htaccess влияет на каталог, в котором он находится, и на все подкаталоги. Он не может ничего сделать с каталогами над ним в дереве. Проверьте это htaccess docs для более подробной информации.

Итак, если вы хотите сохранить расширение .html, вам нужно будет выполнить «AddType application / x-httpd-php .html .php .htm» на корневом уровне «/.htaccess». Или, как предлагает Matt S, изменить расширение на что-то, что обрабатывается как PHP.

0 голосов
/ 30 мая 2010
HeaderName /HEADER.php  
AddType text/html .php  
<Files "*.php">  
  AddHandler application/x-httpd-php .php  
</Files> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...