2013-06-04 157 views
10

我想鏈接到的網頁我的網站裏面,例如: 不:mywebsite.com/about.html但是:mywebsite.com/about/如何鏈接到沒有.html擴展名的頁面?

我見過各種網站這樣做,但它看起來像他們也有不同的反應:

Apple.com: apple.com/iphone/ works,apple.com/iphone/index.html works,apple.com/iphone redirects。

Opera.com: opera.com/mobile/重定向,opera.com/mobile作品,opera.com/mobile.html不工作。

Mozilla.com: mozilla.org/en-US/工作,mozilla.org/en-US重定向,mozilla.org/en-US/index.html不工作。

這導致了另一個問題:是否有不同的方法呢?

編輯: 看來,蘋果公司每個頁面使用一個文件夾,例如,一個名爲'iphone'的文件夾,裏面有一個index.html文件? 但Opera和Mozilla在.htaccess文件中使用某些東西?

+0

檢出.htaccess – Matheno

+2

這就是所謂的URL重寫...現在,這是你的出發點,去閱讀:-) –

回答

6

他們正在使用.htaccessURL rewriting。這是服務器配置的一部分。你不能只用html。

這個page解釋了URL重寫的基礎知識。

+0

在.htaccess文件中的URL重寫嗎?它們都使用不同的.htaccess和/或URL重寫的東西? – user2451987

+0

是的,你可以在你的.htaccess中定義alising規則,有很多網站在處理這個問題,看看@ Marijke的好例子 – ibi0tux

5

您的文件夾然後必須包含一個文件:index.*。 像:/iphone/index.html,它可以是/ iphone /以及

或工作與.htaccess

+1

什麼是更好的使用方法?比其他更穩定嗎? – user2451987

+1

取決於目的,如果您希望通過foo.com/folder/訪問您的站點,您可能需要使用'index。*',因爲它更簡單,更簡單。 – mutex36

10

刪除擴展

要從例如yoursite一個PHP文件擴展名.php。 COM/wallpaper.php到yoursite.com/wallpaper你必須添加.htaccess文件中下面的代碼:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

如果你想從例如yoursite.com/一個HTML文件中刪除.html擴展wallp aper.html到yoursite.com/wallpaper你只需要改變從上面的代碼的最後一行到文件名匹配:

RewriteRule ^([^\.]+)$ $1.html [NC,L] 

這就是它!您現在可以鏈接HTML文檔中的頁面,而無需添加頁面的擴展名。例如:

<a href="http://whatever.com/wallpaper" title="wallpaper">wallpaper</a> 
0

在您的網站根目錄下的.htaccess文件只需添加以下行:

# ---- Render pages without urls 
Options +MultiViews 
1

讓您的href屬性等於要鏈接或網頁。如果您需要 上移一個目錄。

例如:href =「contact.html」 例如:href =「../ links/contact。html「

相關問題