2013-04-24 36 views
24

Nếu tôi đặt dòng sau đây trong một tập tin index.html, để làm cho Apache bao gồm index.php file:Làm thế nào để Apache phục vụ index.php thay vì index.html?

<?php include("/Live/ls_client/index.php"); ?>  

truy cập vào trang index.html cho tôi thấy điều này:

<!--?php include("/Live/ls_client/index.php"); ?--> 

Tại sao vậy? Tại sao nó không thực sự bao gồm tệp PHP?

Trả lời

46

Như những người khác đã lưu ý, rất có thể bạn không có .html được thiết lập để xử lý mã php. Đã nói rằng, nếu tất cả những gì bạn đang làm là sử dụng index.html để bao gồm index.php, câu hỏi của bạn có lẽ là 'làm cách nào để sử dụng index.php làm tài liệu chỉ mục?

Trong trường hợp này, cho Apache (httpd.conf), tìm kiếm DirectoryIndex và thay thế dòng với điều này (sẽ chỉ làm việc nếu bạn có dir_module kích hoạt, nhưng đó là mặc định trên hầu hết các cài đặt):

DirectoryIndex index.php 

Nếu bạn sử dụng chỉ số thư mục khác, liệt kê chúng trong thứ tự ưu tiên tức là

DirectoryIndex index.php index.phtml index.html index.htm 
+5

Bạn cũng có thể thực hiện 'DirectoryIndex index.php index.html' - hữu ích nếu chúng được trộn lẫn trên một máy chủ. – MarioP

+0

Đã chỉnh sửa nội dung đó. –

+0

hoạt động !, cảm ơn :) –

7

PHP sẽ chỉ hoạt động trên tiện ích mở rộng tệp .php.

Nếu bạn đang sử dụng Apache, bạn cũng có thể đặt, trong tệp httpd.conf, các tiện ích mở rộng cho PHP. Bạn sẽ phải tìm dòng:

AddType application/x-httpd-php .php .html 
            ^^^^^ 

và thêm số lượng tiện ích cần đọc với trình thông dịch PHP, như bạn muốn.

+0

Mặc dù bạn có thể * * thêm 'mở rộng .html' để xử lý php trong cấu hình apache của bạn –

+0

ok , tôi sẽ thử. thx –

+0

@dirt, phải, đã thêm. – Shoe

6

Tính đến hôm nay (2015, tháng tám, 1), Apache2 trong Debian Jessie, bạn cần phải chỉnh sửa:

[email protected]:/etc/apache2/mods-enabled$ vi dir.conf 

Và thay đổi thứ tự của dòng đó, đưa index.php đến vị trí đầu tiên:

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm 
Các vấn đề liên quan