2013-04-16 2 views
2

У меня возникли проблемы на моем веб-сайте, используя какой-то PHP-код.
Мой сайт в основном использует html и php. Вместо того чтобы повторять много строк сценария в верхней части каждой страницы, я просто с помощью PHP включают заявление:Использование php Include в html-файлах

<?php include('main.php'); ?> 

У меня есть локальный сервер WAMP и смесь HTML и PHP файлов на моем сайте.
Когда я запускаю все локально, все работает отлично, а инструкция «include» работает.
Однако, когда я загружаю все на свой сайт, который размещен на goDaddy, оператор include работает только внутри .php-файлов. Если я использую его в файле .html, он терпит неудачу. В нем ничего нет.

Я видел несколько сообщений, которые говорят, что это можно решить, используя файл .htaccess. На данный момент у меня его нет на моем сайте. Я попытался загрузить его в корневой каталог, но единственным эффектом этого было то, что он отобразил диалоговое окно «Сохранить как», когда я нажал на страницу.
Я предполагаю, что либо мой синтаксис неверен, либо я пошел по неверному пути, чтобы решить эту проблему.

Ниже приведено содержимое моего файла .htaccess. Любые идеи относительно того, как я могу заставить оператор include работать внутри .html-файлов, были бы замечательными. Благодарю.

# 
# Server root folder www .htaccess 
# This file provides server security limiting access to the localhost only. 
# Comment next four lines to deactivate. (Allows external access) 
# 

# Order Deny,Allow 
# Deny from all 
# Allow from 127.0.0.1 
# Allow from ::1 
AddType application/x-httpd-php .html .php .htm 


# To allow execution of cgi scripts in this directory uncomment next two lines. 


# AddHandler cgi-script .pl .cgi 
# Options +ExecCGI +FollowSymLinks 


# Activate this section to use the Private Server Feature! 
# Defaults: Username - root; Password - root 
# Note AuthUserFile: File path is relative to server root 
# To lock server, uncomment the next 4 lines. (A name and password is required) 

#AuthName "Uniform Server - Server Access" 
#AuthType Basic 
#AuthUserFile ../../../htpasswd/www/.htpasswd 
#Require valid-user 
+0

Я думаю, это относится к superuser.com – fotanus

+0

@fotanus Я бы проголосовал serverfault. – Prisoner

+0

@ Prisoner вы правы, ty – fotanus

ответ

1

Если вы используете <?php include ... ?> внутри HTML файла он не будет работать. Причина? Если файл имеет расширение .html, браузер не ожидает PHP, поэтому он ничего не сделает. Если у вас есть какой-либо PHP-код в любом файле, дайте этому файлу расширение .php. (? Если у вас есть конкретные причины не делать этого ...)

+0

Но у меня есть оператор include внутри .html-файла на моем локальном сервере WAMP, и он работает нормально. Помимо оператора include, у меня нет другого PHP-кода внутри файла .html. Я не возражаю изменить расширение на .php, но, будучи новичком в этом, я не был уверен, правильно ли это делать. – Eddie

+0

Не знаю, почему это работает на WAMP ... но вы всегда должны давать файлы с PHP-кодом в них '.php' расширения, если у вас нет веской причины не – imulsion

2

Все, что вам нужно сделать, это изменить все файлы вы указываете его на .php. Это не повлияет на них отрицательно, только браузер узнает, чтобы интерпретировать его php.

Все ваше форматирование будет по-прежнему действительным.

+0

Несмотря на то, что предложение @Prisoner работает, лучше ли изменить расширение файла на .php? – Eddie

+0

Я мало что знаю о .htaccess, поэтому я не знаю, что бы он сделал, теперь вы изменили его. Однако, если у вас есть файлы с php в них, на самом деле нет смысла в них не вызывать .php. Если у вас нет десяти тысяч и придется их менять:? –

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