Tôi cần chạy tất cả các tệp .html của tôi dưới dạng tệp .php và tôi không có thời gian để thay đổi tất cả các liên kết trước bản trình bày của chúng tôi vào ngày mai. Có cách nào để "hack" này với máy chủ Apache của tôi?Sử dụng .htaccess để làm cho tất cả các trang .html chạy dưới dạng tệp .php?
Trả lời
Tạo một file .htaccess tại thư mục gốc của trang web của bạn và thêm dòng này:
[Apache2 @ Ubuntu/Debian: sử dụng chỉ thị này]
AddType application/x-httpd-php .html .htm
Hoặc, từ bình luận dưới đây:
AddType application/x-httpd-php5 .html .htm
Nếu bạn đang chạy PHP như CGI (có lẽ không phải là trường hợp), bạn nên viết thay vì:
AddHandler application/x-httpd-php .html .htm
Tôi phải thêm '5' vào cuối loại để nó hoạt động, tức là'Ứng dụng AddType/x-httpd-php5 .html .htm' (CentOS chạy PHP 5.3) – melat0nin
Điều này không hiệu quả đối với tôi. Nó làm cho Firefox muốn tải xuống tệp html và hiển thị nó. –
@LeeBlake Tôi gặp vấn đề tương tự. Bất kỳ may mắn với điều này? –
Đối với bất cứ ai ngoài kia vẫn còn gặp khó khăn,
thử này (lưu trữ của tôi là từ Godaddy và đây là điều duy nhất làm việc cho tôi trong số tất cả các câu trả lời trên mạng.
AddHandler x-httpd-php5-cgi .html
Trong Godaddy server của tôi đoạn mã sau làm việc
Options +ExecCGI
AddType application/x-httpd-php .php .html
AddHandler x-httpd-php5 .php .html
Tôi nghĩ rằng đề cập đến "Godaddy" cướp bạn khỏi vị trí đầu tiên của bạn. – Pacerier
Tôi nghĩ rằng đây là cách tốt nhất để chạy php script trên html và htm trang:
AddType application/x-httpd-php5 .html .htm
Thông thường bạn nên thêm :
Options +ExecCGI
AddType application/x-httpd-php .php .html
AddHandler x-httpd-php5 .php .html
Howeve r cho GoDaddy shared hosting (php-cgi), bạn cũng cần phải thêm vào các dòng sau:
AddHandler fcgid-script .html
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html
Điều này làm việc với hostgator chia sẻ lưu trữ là tốt. Cảm ơn. –
Tôi đang sử dụng godaddy và đó là người duy nhất làm việc cho tôi. những người khác không hoạt động hoặc tải xuống trang html mà không hiển thị trang đó! – lKashef
Sử dụng @ phương pháp Marc-François Firefox nhắc tôi để tải về tập tin html
Cuối cùng sau đang làm việc cho tôi (sử dụng cả hai):
AddType application/x-httpd-php .htm .html AddHandler x-httpd-php .htm .html
Bạn cũng có thể sử dụng H hoặc T cờ của mod_rewrite để buộc tất cả.file html để được phân tích bởi handler php:
sử dụng H (Handler) cờ:
RewriteEngine on
RewriteRule \.(html|htm)$ - [H=application/x-httpd-php5]
sử dụng T (Type) cờ:
RewriteEngine on
RewriteRule \.(html|htm)$ - [T=application/x-httpd-php5]
Hoặc bạn có thể thêm phần mở rộng cho quy tắc mẫu được tách bởi một đường ống | mà bạn muốn được phân tích bởi handler php
ví dụ:
RewriteRule \.(html|htm|txt|foo)$ - [T=application/x-httpd-php5]
ví dụ trên sẽ thay đổi loại mime các tập tin kết thúc bằng .html, .htm, .txt , .foo tới php.
Lưu ý: trên một số máy chủ bạn sẽ phải thay đổi php5 để php để có được ví dụ này để làm việc trong chuỗi xử lý:
Thay đổi nó
[T=application/x-httpd-php5]
để
[T=application/x-httpd-php]
Bạn cần thêm dòng sau vào tệp cấu hình Apache của mình:
AddType application/x-httpd-php .htm .html
Bạn cũng cần hai điều khác:
phép Overridding
Trong
your_site.conf
tập tin (ví dụ dưới/etc/apache2/mods-available
trong trường hợp của tôi), thêm những dòng sau đây:<Directory "<path_to_your_html_dir(in my case: /var/www/html)>"> AllowOverride All </Directory>
Enable Viết lại Mod
Chạy lệnh này trên máy tính của bạn:
sudo a2enmod rewrite
Sau khi bất kỳ của những bước, bạn nên khởi động lại apache:
sudo service apache2 restart
AddHandler application/x-httpd-php .php .html .htm
// or
AddType application/x-httpd-php .php .htm .html
Vui lòng sử dụng liên kết [chỉnh sửa] để giải thích cách mã này hoạt động và không chỉ cung cấp mã, vì giải thích có nhiều khả năng giúp người đọc trong tương lai. Xem thêm [trả lời]. [nguồn] (http://stackoverflow.com/users/5244995) –
- 1. htaccess chuyển hướng tất cả các trang đến một trang
- 2. OpenMPI: Tất cả các nút chạy dưới dạng nút 0
- 3. Phân tích cú pháp js/css dưới dạng tệp tin PHP bằng cách sử dụng htaccess
- 4. .htaccess gây tất cả các trang được tải về
- 5. Làm cách nào để yêu cầu mật khẩu cho tất cả các tệp ngoại trừ một tệp sử dụng .htaccess?
- 6. Sử dụng PHP để tự động thêm vào tệp .htaccess?
- 7. PHP mPDF lưu tệp dưới dạng PDF
- 8. PHP nhận tất cả đối số dưới dạng mảng?
- 9. Sử dụng PHP để định dạng truy vấn SQL đầu vào dưới dạng HTML?
- 10. HTACCESS Chuyển hướng tất cả tên miền trừ hai tệp
- 11. Làm cách nào để yêu cầu Eclipse xác thực tệp HTML dưới dạng PHP?
- 12. htaccess viết lại tất cả để index.html
- 13. Mã PHP để duyệt qua tệp HTML để tìm tất cả các hình ảnh trong đó?
- 14. Bao gồm tệp PHP dưới dạng chuỗi
- 15. jQuery Mobile: Sử dụng cùng một tiêu đề chân trang cho tất cả các trang
- 16. .htaccess chuyển hướng tất cả các trang trong một thư mục sang miền mới
- 17. htaccess ghi đè tất cả các trang vào cùng một trang trên một tên miền khác
- 18. Xóa tất cả JavaScript khỏi trang HTML
- 19. Chuyển TẤT CẢ các yêu cầu dưới một tên miền để tĩnh trang
- 20. Làm cách nào để nhận tất cả các biến môi trường dưới dạng một mảng trong PHP?
- 21. Chuyển hướng tất cả đến index.php htaccess
- 22. Cách sử dụng phiên bản php riêng biệt cho các tệp php khác nhau
- 23. Tìm tất cả các nút văn bản trong trang HTML
- 24. chuyển hướng htaccess .co.uk sang .com cho tất cả các trang
- 25. Lỗi đơnDocument directive để bắt tất cả các lỗi (.htaccess)
- 26. Làm thế nào để bao gồm một file PHP Toàn trang web Sử dụng .htaccess hoặc các phương pháp khác
- 27. Đặt tiêu đề HTTP cho tất cả các tập lệnh PHP qua .htaccess tập tin
- 28. Chọn DOCTYPE cho HTML 5 + tất cả các trình duyệt
- 29. Chạy Java dưới dạng ứng dụng web
- 30. .htaccess từ chối tất cả
Mặc dù đây không phải là câu trả lời trực tiếp cho câu hỏi của bạn, bằng cách sử dụng 'sed' hoặc bất kỳ IDE tốt nào sẽ cho phép bạn tìm và thay thế toàn bộ thư mục/dự án. Ngoài ra, bạn có thể đổi tên hàng loạt các tập tin khá dễ dàng trên Linux. – coreyward
Có nhưng nếu bạn đổi tên các tập tin bằng sed, bạn có thể nhận được nhiều liên kết bị hỏng. Tất nhiên, bạn cũng có thể cố gắng thay đổi tất cả các liên kết trong trang web của mình, nhưng cũng có các liên kết từ khắp nơi trên Internet có thể trỏ đến trang web của bạn. –