2016-10-04 116 views
4

如何隱藏我的.html文件,例如,當我訪問www.mysite.com時,它會重定向到www.mysite.com/index.html,但會隱藏/\index.html,因此它保持爲www.mysite。但實際上是www.mysite.com/index.html。 我真的不知道如何解釋,但如果你明白我可以請你幫忙,謝謝。如何在Apache中配置路由?

+0

您想從所有網址中移除.html。讓我們聯繫我們的網頁應該是www.mysite.com/contact而不是www.mysite.com/contact.html? –

+0

這不是一個真正的javascript問題。關注apache的URL重寫。 –

+0

@RahulPatel是的,這是正確的,我會怎麼做? – meme

回答

0

試試這個,我們在這裏設置目錄索引,所以我們不必在每次調用時都提及index.html。並重寫每個html沒有擴展名。

DirectoryIndex index.html 

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule ^([\w-]+)$ $1.html [L] 
3

安裝.htaccess文件是一個簡單的ASCII文件,您可以使用文本編輯器(如記事本或TextMate)創建該文件。它提供了一種在每個目錄基礎上進行配置更改的方法。

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

來源 - How to remove .php, .html, .htm extensions with .htaccess

+0

感謝您的幫助:) – meme

3

請填寫下面的代碼在你的.htaccess文件。

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} \.html$ 
RewriteRule ^(.*)\.html$ $1 [R=301,L] 

使用上述代碼將從您的URL中刪除.html。 可以說你的聯繫我們頁面的網址是www.mysite.com/contact.html,所以使用上面的代碼將代替www.mysite.com/contact

+1

非常感謝,我非常感謝您的幫助:) – meme

+0

我真的很高興能幫到您。 (y)的 –

0

此方法不使用apache。這只是重構代碼。

您還可以嘗試使用爲路由創建不同的目錄。 如聯繫頁面,您將在項目的根目錄中擁有文件夾名稱聯繫人。在該文件夾中,將contact.html放置爲index.html。 這種重組可以幫助您按照路線分割代碼。

鏈接到聯繫頁面將是www.mysite.com/contact(瀏覽器將www.mysite.com/contact/index.html)。

0

如果您要求僅在索引頁中編輯客戶端上的URL文本。你可以通過JavaScript與代碼的HTML文件從this answer更換路徑:

history.replaceState('data to be passed', 'Title of the page', 'theNameWithoutTheHTML'); 

名稱應改爲每個頁面的每個.js文件,或者你可以使用一個更通用的腳本,並重復使用它:

history.replaceState('data to be passed', 'Title of the page', location.pathname.slice(0, -5)); //This will replace it with the same path, removing the ".html" at the end (take care if the extension is different sized) 

在這種情況下,您將重定向到.html文件,當用戶重新加載頁面時(因爲它會嘗試加載沒有.html的頁面)應該沒有任何問題。