如何使用Apache mod_rewrite隐藏.html扩展名我有一些静态网站,我只想隐藏.html扩展名:url /foo获取静态文件/foo.html浏览器仍然显示网址 /foo然后客户端可以发送风格的书签mydomain.com/foo而不是mydomain.com/foo.html。这听起来非常简单,mod_rewrite之前我曾经愉快地使用过(比如使用WordPress或重定向),但事实证明这更难破解。也许我错过了一些非常明显的东西,但我无法在任何地方找到解决方案而且我整天都在这里!我们运行自己的服务器,所以这可以去哪里是最好的地方。附录下面检查的解决方案工作正常。然后在运行该网站一段时间后,我注意到两个问题:所有页面都开始显得格格不入。我重新加载,清除缓存等,但仍然没有风格。我以前遇到过这个麻烦,找不到来源。有一个目录和一个名为'gallery'的html文件,因此/ gallery链接显示了一个目录列表而不是html文件。我应该可以排序那个,但欢迎进一步提示:-)
3 回答
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
试试这条规则:
RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
这将重写所有可以在追加时映射到现有文件的请求.html
。
蓝山帝景
TA贡献1843条经验 获得超7个赞
当网站配置了虚拟主机/文档根时,接受的解决方案不起作用。
有我使用的解决方案:
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
- 3 回答
- 0 关注
- 976 浏览
添加回答
举报
0/150
提交
取消