2012-01-12 117 views
0

我想隱藏我的網頁的擴展,使:簡單的mod_rewrite隱藏擴展名

  • /page
  • /page/
  • /page.html

所有重定向到page.html

這個討論有幾乎工作的解決方案:How to hide the .html extension with Apache mod_rewrite

但使用/page/時,需要考慮到尾隨斜線作爲文件夾指示,因此在這個HTML文件的所有鏈接和相對路徑去,說/page/style.css,而不是/style.css

這是我目前的.htaccess

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L] 

如何解決呢?

+0

如果您因重複而投票結束,請將我轉發給副本。或者顯而易見的谷歌結果。我還沒有找到。 – Lazlo 2012-01-12 01:44:16

回答

0

我wpould添加一個全局變量$ URL_ROOT到PHP或其他語言,並用它絕對鏈接的所有相關鏈接...

+0

我試圖避免這種情況。 – Lazlo 2012-01-13 19:11:26

0

你實際上並不需要mod_rewrite的這一點,你可以改用content negotiationmultiviews

可以通過將以下內容添加到您的配置文件或htaccess文件來啓用多視圖。

Options +MultiViews

使用選項啓用 example.com/filename將解析爲example.com/filename.html(沒有的.html在地址欄)。