我对网络内容并不惊讶,但我有一个小型投资组合网站,我正在重新设计。我希望隐藏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
,但仍然会丢失所有图像和样式表。
这可能非常简单,但我需要一些帮助。
答案 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://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
扩展名,如其他答案中所述。