样式表和隐藏.html扩展名

时间:2013-05-07 23:55:05

标签: html css .htaccess hide

我对网络内容并不惊讶,但我有一个小型投资组合网站,我正在重新设计。我希望隐藏example.com/page.html并将其设为website.com/page。

我添加了重写引擎,我在这里找到了.htaccess

RewriteEngine On
RewriteRule   ^([A-Za-z0-9-]+)/?$  $1.html

唯一的问题是,当我使用RewriteEngine时,/page.html的原始路径正常加载,但当我将其作为/page/进行测试时,它似乎丢失了样式表,我已经尝试将样式表重新链接为.../style.css而不仅仅是style.css,但仍然会丢失所有图像和样式表。

这可能非常简单,但我需要一些帮助。

3 个答案:

答案 0 :(得分:2)

我从你的话中理解的是,你想让你的网址像: http://www.example.com/page 好 。如果你不必使用htaccess,你可以这样做你想要的。 只需将文件名(page.html)更改为(index.html)即可。现在在根目录中创建一个新文件夹并将index.html移动到那里! 如果文件(page.html)是您的主页,只需将其名称更改为index.html并保持不变:D!

答案 1 :(得分:1)

您可能不想重写每个可能的扩展名,所以您可能想尝试这样的事情:

RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

这应该做的是检查文件是否存在.html扩展名。如果是这样,它应该在执行实际“查找”之前透明地将.html附加到路径。因此,如果您发出

的HTTP请求
http://yourdomain.tld/somepage

并且您的网站有一个名为somepage.html的HTML网页,实际处理的网址实际上是

http://yourdomain.tld/somepage.html

修改

我包含一个Dropbox链接,其中包含一个自包含的示例,其中显示了上述建议:https://www.dropbox.com/s/6md9gviv0r2rf9v/xampp.7z

它包含Xampp的可移植版本+来自这个相当不错的教程的源文件:http://coding.smashingmagazine.com/2009/08/04/designing-a-html-5-layout-from-scratch/

将xampp.7z文件解压缩到某处(我推荐桌面),然后查找并执行setup_xampp.bat文件。它将调整本地文件系统的所有内部路径。然后,运行xampp-control并启动Apache。一旦运行,请导航到http://localhost:8080/testsite/ - 这是测试站点。您应该可以在http://localhost:8080/testsite/http://localhost:8080/testsite/contact之间来回跳转 - 这两个页面都有.html分机。

HTH。

答案 2 :(得分:1)

您的问题不一定与RewriteRules有关,而是与路径有关。通常,您应该始终使用图像和资产的绝对路径。因此,不要加载style.css../style.css,而是加载/style.css/static/styles/style.css。否则,浏览器会尝试相对于页面位置进行解析,并且/page被视为位于根文件夹中,而/page/被认为是其自己的文件夹。

喵,如果您从页面加载style.css

  • /page开始,它将加载/style.css
  • /page/开始,它将加载/page/style.css

始终使用绝对路径,避免痛苦和挫折。

除此之外,请确保图像和资源也不会被重写为.html扩展名,如其他答案中所述。