2012-01-12 102 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在地址栏)。