爲什麼我們的php文件爲.php,我們可以將.php文件保存爲.html,因爲在某些網站上,我看到了帶.php擴展名的網頁,爲什麼我們不能有.html文件的.html擴展名。如何將php文件另存爲.php或.html擴展名?
它是否影響php文件在php服務器引擎上的執行。如果我們把它作爲.html文件,裏面有php代碼。
爲什麼我們的php文件爲.php,我們可以將.php文件保存爲.html,因爲在某些網站上,我看到了帶.php擴展名的網頁,爲什麼我們不能有.html文件的.html擴展名。如何將php文件另存爲.php或.html擴展名?
它是否影響php文件在php服務器引擎上的執行。如果我們把它作爲.html文件,裏面有php代碼。
如果你真的想與.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或其他服務器產品,則可能需要相應地調整它。
+1寫得很好的解釋和SEO – kjy112 2011-03-01 14:10:49
什麼更好,根據你的修改.htaccess文件或url重寫。 – parmanand 2011-03-01 15:58:15
@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
你可以做到這一點,但你必須修改你的.htaccess
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html
的替代KJY的答案是使用URL重寫,這將讓你使用任何你想要的頁面擴展/文件名。
最好還是根據你的修改.htaccess文件或url重寫。 – parmanand 2011-03-01 15:58:49
@Demla重寫網址,它基本上是標準。如果你曾經移動過服務器,那麼它也會更具可移植性,而且如果有人設法注入所有HTML頁面,那麼你不必擔心所有的HTML頁面都會突然執行PHP代碼。它還爲您提供更多選項來顯示頁面名稱。 – 2011-03-01 17:07:12
到file.htm所有請求都會被髮送到file.php:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.htm$ $1.php [NC]
什麼更好,根據你的修改.htaccess文件或url重寫。 – parmanand 2011-03-01 15:56:45
真的嗎?如果頁面被保存爲。PHP引擎會直接傳遞它,你的PHP代碼將會以純文本格式呈現 – benhowdle89 2011-03-01 13:42:51
@ benhowdle89 - 實際上你可以配置服務器通過PHP解析器發送.html文件(或者其他任何擴展名)。不一定是個好主意,但它可以完成。 – Spudley 2011-03-01 13:53:22