2011-08-14 42 views
7

網站http://example.com的根正確識別的index.html並對其進行渲染。以類似的方式,我想,http://example.com/foofoo.html存在於目錄的根目錄。使用此功能的網站是www.zachholman.com。我在Github看過他的代碼。但是我仍然無法找到它是如何完成的。請幫忙。如何添加REST風格的路線類型傑基爾

+1

在那裏有你的第二個URL例如後下劃線。我假設根據您列出的示例網站而不是「example.com/foo_」,您想要「example.com/foo」。那是對的嗎? –

回答

2

它實際上是需要調整的服務器,而不是jekyll。默認情況下,jekyll將生成帶有.html擴展名的文件。這可能有一種解決辦法,但是你不可能真的想去那條路線。相反,您需要讓Web服務器知道,當使用文件的基本名稱(並且沒有擴展名)調用URL時,需要提供這些文件。

如果您的站點通過Apache Web服務器提供,您可以啓用「MultiViews」選項。在大多數情況下,你可以這樣做可以在創建站點根.htaccess文件有如下一行:

Options +MultiViews 

啓用該選項,當阿帕奇收到一個請求:

http://example.com/foo 

它將服務文件:

/foo.html 

注意,Apache服務器必須設置爲允許要在htaccess文件中設置的選項。如果沒有,你需要在Apache配置文件本身中完成。如果您的網站託管在其他網絡服務器上,則需要查找相應的設置。

+0

謝謝艾倫,工作!我用上面提到的一行創建了一個.htaccess。我應該更多地瞭解重寫規則。 –

11

此功能實際上在Jekyll中可用。只需以下行添加到您的_config.yml:

permalink: pretty 

這將使鏈接的文章和網頁沒有.html擴展名,例如

  • /about/代替/about.html
  • /YYYY/MM/DD/my-first-post/而不是YYYY-MM-DD-my-first-post.html

然而,你無法自定義永久鏈接的能力......以及最後的斜線是很醜陋。

編輯:斜槓似乎由design