我知道它試圖加載.html版本,至少我很確定。我也認爲這是在.htaccess文件中的東西。我嘗試了一些搜索谷歌的不同的東西,並提出了一些建議。基本上我希望它的工作,如果沒有輸入名稱的.html文件,它會去的PHP一個。如何製作example.com/eat load example.com/eat.php?
這可能嗎?
我知道它試圖加載.html版本,至少我很確定。我也認爲這是在.htaccess文件中的東西。我嘗試了一些搜索谷歌的不同的東西,並提出了一些建議。基本上我希望它的工作,如果沒有輸入名稱的.html文件,它會去的PHP一個。如何製作example.com/eat load example.com/eat.php?
這可能嗎?
在htaccess的
RewriteEngine on
RewriteRule ^eat$ eat.php [L]
此添加到apache配置(無論是在httpd.conf
,VirtualHost
配置,或在.htaccess
):
Options +MultiViews
使用重寫,這是一矯枉過正,當content-negotiation
可以完成這項工作。
我我使用godaddy進行託管,是否有辦法通過它們更改我的apache配置? – 2012-07-25 03:35:18
你可以在'.htaccess'(它是每個dir的apache配置)中設置這個 – poncha 2012-07-25 03:36:08
我有你的代碼在我的.htaccess文件中..並且我得到一個頁面未被發現的錯誤。嘗試在這裏:staging.easyzag.com/eat(嘗試.php版本,看看它在那裏) – 2012-07-25 03:56:12
試試這個:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -s
RewriteRule ^.*$ %{REQUEST_URI}.php [L,QSA]
上述規則說,如果請求的文件大小爲0,或者不存在的文件,符號鏈接或目錄同名的一個文件擴展名存在.php
,然後重寫爲.php
文件。
這有效地將site.com/foo
重寫爲site.com/foo.php
,其中foo
可以是任何東西。
我不是很清楚你想要什麼。如果要映射不存在的.html
文件到.php
擴展,試試這個來代替:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ $1.php [L,QSA]
如果請求的文件不存在,並在.html
結束,然後抓住文件名(.html
少這只是說: )並嘗試重寫爲.php
擴展名。
這些工作也將在所有目錄?像將site.com/foo/bar也去site.com/foo/bar.php – 2012-07-25 03:16:22
也,我將如何使其工作的子目錄。說,foo.bar/eat - > foo.bar/eat.php – 2012-07-25 03:27:48
'.htaccess'文件被沒有'.htaccess'文件的任何子目錄繼承,所以它應該適用於子文件夾/子域。 – drew010 2012-07-25 03:39:33
您正在尋找URL重寫(非常靈活)或設置默認頁面(指定Web服務器嘗試查找頁面的順序)。如果你谷歌這些條款,你會發現幫助,如:http://www.cyberdesignz.com/blog/website-design/url-rewriting-top-5-ways-of-php-url-rewriting/ – 2012-07-25 02:58:27