2011-03-01 107 views
4

爲什麼我們的php文件爲.php,我們可以將.php文件保存爲.html,因爲在某些網站上,我看到了帶.php擴展名的網頁,爲什麼我們不能有.html文件的.html擴展名。如何將php文件另存爲.php或.html擴展名?

它是否影響php文件在php服務器引擎上的執行。如果我們把它作爲.html文件,裏面有php代碼。

+2

真的嗎?如果頁面被保存爲。PHP引擎會直接傳遞它,你的PHP代碼將會以純文本格式呈現 – benhowdle89 2011-03-01 13:42:51

+2

@ benhowdle89 - 實際上你可以配置服務器通過PHP解析器發送.html文件(或者其他任何擴展名)。不一定是個好主意,但它可以完成。 – Spudley 2011-03-01 13:53:22

回答

13

如果你真的想與.html文件,以滿足您的PHP代碼,它可以做完了。

您的Web服務器配置爲通過查看擴展來檢測文件類型。默認情況下,它將通過PHP解釋器路由.php文件,而.html文件將直接提供給最終用戶。您可以通過服務器的配置文件或單個Web目錄的本地.htaccess文件來配置此行爲。有關如何執行此操作,請參閱@ kjy112的答案。

問題是爲什麼?這對你來說很重要嗎?或者它只是你想要的一件好事。問問自己:您的最終用戶會在意嗎?甚至通知?

默認情況下這樣配置瀏覽器的原因是爲了使沒有任何PHP代碼的普通HTML文件可以傳遞給用戶而不需要經歷PHP解釋器處理的開銷。通過改變配置,所有的HTML文件都將被解釋爲PHP,即使它們實際上不包含任何PHP代碼,所以您將爲您的服務器增加額外的處理負載。當然,如果你的所有文件都含有PHP代碼的一些元素,那麼無論如何你都會想要這種行爲,所以這顯然不會讓你擔心。

所以可以做到。但可能有更好的解決方案給你:

當前SEO(搜索引擎優化)的趨勢是擺脫URL中的文件擴展名完全。如果您查看此問題的網址,則會看到它有一個非常具有描述性的網址,並且沒有擴展名。如果你想遵循當前的最佳實踐趨勢,你可能需要考慮沿着這條路線走下去。

這是使用mod_rewrite完成的。 URL的描述部分完全是任意的:如果更改它,頁面仍然會正確加載。重要部分是描述前的ID號碼;這個描述只是爲了給它的谷歌排名提供一個提升。對所涉及技術的全面討論超出了這個問題的範圍,但是有大量資源可以幫助你(嘗試在本站點上搜索mod_rewrite以開始)。

注意:我在這裏給出的所有特定的服務器配置建議適用於Apache Web服務器。如果您使用IIS或其他服務器產品,則可能需要相應地調整它。

+0

+1寫得很好的解釋和SEO – kjy112 2011-03-01 14:10:49

+0

什麼更好,根據你的修改.htaccess文件或url重寫。 – parmanand 2011-03-01 15:58:15

+1

@Demla Pawan:如果我們仍在討論URL中的.php v .html,那麼它對最終用戶沒有任何不利。對服務器來說,修改.htaccess(或者更好的,主服務器配置)會更高效,因爲它將直接訪問指定的文件,而不必像mod_rewrite那樣通過正則表達式解析器來運行每個URL。然而,mod_rewrite選項會意味着,如果用戶瀏覽它們,則URL的.php和.html版本都可以使用。對於更復雜的URL解決方案,例如我描述的SEO技術,mod_rewrite是正確的答案,因爲這不能簡單地通過重命名文件來完成。 – Spudley 2011-03-01 17:18:23

6

你可以做到這一點,但你必須修改你的.htaccess

RemoveHandler .html .htm 
AddType application/x-httpd-php .php .htm .html 
+0

你的意思是.htaccess我認爲..... – Stewart 2011-03-01 14:51:23

+0

@Stewart oops tyoop ... – kjy112 2011-03-01 14:53:02

+0

如果我們將文件保存爲.html,並設置規則什麼你說的.htaccess文件,這個規則強加在服務器上的每個文件或者它將圍繞某些特定的目錄集中,這些目錄需要被提供。 – parmanand 2011-03-01 15:55:52

1

的替代KJY的答案是使用URL重寫,這將讓你使用任何你想要的頁面擴展/文件名。

+0

最好還是根據你的修改.htaccess文件或url重寫。 – parmanand 2011-03-01 15:58:49

+0

@Demla重寫網址,它基本上是標準。如果你曾經移動過服務器,那麼它也會更具可移植性,而且如果有人設法注入所有HTML頁面,那麼你不必擔心所有的HTML頁面都會突然執行PHP代碼。它還爲您提供更多選項來顯示頁面名稱。 – 2011-03-01 17:07:12

2

Rewrite Info here

file.htm所有請求都會被髮送到file.php

Options +FollowSymlinks 
RewriteEngine on 
RewriteRule ^(.*)\.htm$ $1.php [NC] 
+0

什麼更好,根據你的修改.htaccess文件或url重寫。 – parmanand 2011-03-01 15:56:45