2017-03-31 58 views
1

當網站上的頁面的結構如此時,背後的技術是什麼? example.com/pages/about如何構建網頁

從後面的代碼中查看時,顯然有問題的頁面實際上放在了根目錄(example.com)中,而且還有可能在URL中添加任何內容(如example.com/pages/about/qwerty),但它仍然返回正確的頁面?

我根本不知道該怎麼去谷歌。


我忘了提,我在傳統的ASP工作。事實證明,'語義URL'就是我正在尋找的。爲了彌補我的「大拇指朝下」的缺乏研究,這裏就是我想出了今天上午的解決方案:

example.com/about/default.asp:

<%session("jump")="about.asp" 
response.redirect "http://example.com"%> 

example.com/ Default.asp的內容應包括:

<%if len(session("jump"))>0 then server.transfer(session("jump"))%> 

這將使語義URL example.com/about可用,並不會出現與所生成的頁面的URL的用戶:example.com/about.asp

+1

https://en.wikipedia.org/wiki/Front_controller – ceejayoz

+1

他們最有可能使用一些一種路由引擎。那裏有很多,並且不可能僅僅從那個URL中知道。例如微軟已經用ASP.Net MVC實現它們,Java有Spring MVC。 PHP有codeigniter(和其他人) – mituw16

+1

https://www.google.com/search?q=seo+folder+OR+URL+structure – mplungjan

回答

2

您'重新使用經典的ASP,它沒有任何已經建立的MVC框架,所以MVC路由可能對你沒有多大的幫助。你應該谷歌應該是「URL重寫」。有一個純粹的ASP解決方案,包括創建一個自定義的404頁面,並在條件語句中使用server.transfer(所以你開始認真思考),但從實際的角度來看,你可能想要使用的是IIS URL重寫模塊。

首先,您需要使用IIS7或更高版本,因爲Microsoft不再支持具有較早版本的操作系統,所以我認爲我們現在可以安全地假設您將會這樣做。您可以通過IIS管理器添加規則,也可以直接將它們添加到您的web.config文件中。例如,如果您希望example.com/about將您帶到about.asp,並使用example.com/contact將您帶到contact.asp(兩個文件都位於根目錄中),那麼您可以將以下內容添加到<system.webServer>部分你的web.config文件

<rewrite> 
     <rules>    
     <rule name="About" stopProcessing="true"> 
      <match url="^about$"/> 
      <conditions> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/> 
      </conditions> 
      <action type="Rewrite" url="about.asp"/> 
     </rule> 
     <rule name="Contact" stopProcessing="true"> 
      <match url="^contact$"/> 
      <conditions> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/> 
      </conditions> 
      <action type="Rewrite" url="contact.asp"/> 
     </rule>    
     </rules> 
    </rewrite> 

的還有微軟的IIS網站一個很好的教程:

https://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module