Використання php в сторінках з розширенням html
Раніше для використання SSI, назви сторінок сайту повинні були закінчуватися розширенням .shtml. але сьогодні більшість інтернет-серверів сконфігуровані так, що SSI можна використовувати і на сторінках з розширенням .html. що вельми зручно. З PHP зовсім інша історія - розширення .php є розширенням за замовчуванням. Розробники сайтів, заздалегідь знаючи, що буде використовуватися дана мова програмування, зразу привласнюють правильне розширення.
Але що робити, коли всі сторінки закінчуються розширенням .html?
Замінюємо розширення HTML на PHP
Це можна зробити декількома способами. Самий явний спосіб - дати всім сторінкам розширення .php або змінити вже існуючі розширення (.html. Shtml і т.д.). У цього способу є недоліки. Наприклад вже проіндексованих сторінок з розширенням .html доведеться заново індексуватися пошуковими системами. Або ще гірше - все зовнішні посилання, які посилаються явно на ту чи іншу сторінку, будуть недійсні. І доведеться сповіщати власників кожного сайту про ці зміни і створювати для кожної сторінки ще одну сторінку з 301 помилкою. Звичайно, змінити одне розширення на інше допустимо, але що робити якщо сайт вже має багато сторінок і багато посилань на різні сторінки з інших сайтів?
За усвідомленої причини на даний момент всі сторінки цього сайту закінчуються розширенням html, і мені ніяк не хотілося робити вищенаведені зміни, тим самим створюючи собі зайві труднощі.
Можна обійтися і іншим способом. Якщо сервер, на якому розміщується сайт, підтримує mod_rewrite (в більшості випадків підтримує), і є доступ до файлу .htaccess. то можна додати наступні рядки в цей самий файл:
Додавши цей код в .htaccess. можна не хвилюватися. Все запитувані неіснуючі сторінки з розширенням .html будуть автоматично замінятися розширенням .php завдяки чудесам від Apache. Але і цей спосіб є не єдиним. Можна прописати наступне в тому ж самому .htaccess файл:
До речі, якщо до цього на сайті використовувалося SSI наступним чином:
то тоді в новому PHP'шном стані цей код потрібно замінити на:
Ну ось і все, думаю котрійсь із вищенаведених способів допоможе.
а ще простіше попросити хостера в httpd.conf Апача
додати
AddType application / x-httpd-php .php .phtml .htm .html
і немає потреби використовувати mod_rewrite
Так звичайно. Просто з AddHandler в .htaccess, mod_rewrite не потрібен, і чекати хостера не знадобиться. Головне AddType НЕ прописувати в самому .htaccess
Перший спосіб ІМХО краще. Після трьох-шести місяців можна просто видалити
-
RewriteEngine on
RewriteRule ^ (. *) \. Html $ 1 \ .php
-
І додати на 404 помилку скрипт, що буде перекидати з html на php
плюси:
в html (де не потрібен php) не викликатися php (менше навантаження на сервак)
Rewrite не працюватиме - менше навантаження.
Ну на знаю у 3 різних хостерів просив прописати що то в httpd.conf Апача ....
глухо ..
впечетление що вони його як вогню бояться
RewriteRule ^ (. *) \. Html $ 1 \ .php - ось це просто врятувало!
AddHandler application / x-httpd-php .php .html .htm
Дописати треба до:
RewriteEngine on
RewriteRule ^ (. *) \. Html $ 1 \ .php
або це альтернатива? У тексті статті двозначно написано: прописати наступне в тому ж самому .htaccess файлі
Дійсно двозначно. Вам варто розуміти це як два різних методу. Перший просто автоматом переписує розширення сторінки, а другий метод залишає розширення HTML в спокої, але дає сервера команду виконувати PHP-код.
Також можна скористатися обома методами.