2012-10-16 119 views
2

我已經在PHP中創建了一個動態PNG圖片。爲了使用PNG擴展我創建了一個的.htaccess-文件,內容如下:通過htaccess解析PNG爲PHP只適用於本地服務器,但不適用於網絡服務器

AddType application/x-httpd-php .png 

在我的本地XAMPP服務器一切都運行完美,但在上傳一個網絡服務器中的文件後,它不」 T工作了。當我訪問文件時,會顯示文件的PHP代碼。

這些都是從這兩個服務器的2個不同的答案:

本地服務器:

HTTP/1.1 200 OK 
Date: Tue, 16 Oct 2012 21:51:58 GMT 
Server: Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 
Last-Modified: Sat, 07 Feb 2009 11:47:04 GMT 
Etag: "9000000024598-1e66-46252b23c9e00" 
Accept-Ranges: bytes 
Content-Length: 7782 
Keep-Alive: timeout=5, max=99 
Connection: Keep-Alive 
Content-Type: image/x-icon 

網絡服務器:

HTTP/1.1 200 OK 
Date: Tue, 16 Oct 2012 21:55:17 GMT 
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r 
Last-Modified: Tue, 16 Oct 2012 21:21:56 GMT 
Etag: "db0f1b0-afc-4cc33be6befa5" 
Accept-Ranges: bytes 
Content-Length: 2812 
Keep-Alive: timeout=3, max=100 
Connection: Keep-Alive 
Content-Type: application/x-httpd-php 

於是莫名其妙的文件沒能坐解析。我真的不知道從哪裏開始。

回答

5

我想你最好使用.htaccess與RewriteEngine敘述是這樣的:

RewriteEngine On 
RewriteBase /directory/to/dynamic_image 
RewriteRule ^logo\.png$ logo.php 

或所有.php文件:

RewriteEngine On 
RewriteBase /directory/to/dynamic_image 
RewriteRule ^(.+)\.png$ $1.php 
+0

謝謝你,完美的作品!但我仍然想知道爲什麼我的解決方案只能在一臺服務器上運行。 – Michael

+1

你可以看看[這裏](http://www.velvetblues.com/web-development-blog/how-to-parse-html-files-as-php/)。根據您的虛擬主機,某些'.htaccess'指令是允許的或不允許的。 –

2
在你的PHP文件

設置頁眉爲PNG圖像(在任何輸出到頁面之前):

<?php 
header('Content-Type: image/png'); 
// image generating code here....... 
?> 

這消除了需要.htaccess條目

+1

我已經做到了。無論如何,文件都不會被解析。也許我沒有在我的文章中說清楚,但是當我訪問網絡服務器上的文件時,它顯示文件的SOURCE CODE – Michael

相關問題