我试图在我的.htaccess文件中使用简单的重写从我的网站网址中删除.html扩展名:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html-f
RewriteRule ^(.*)$ $1.html
然而,这成功地重写了URL,但打破了我在页面上访问资源的所有相对路径。这意味着我的所有图像,CSS文件,脚本等都被破坏,我的页面加载不正确。
例如,如果我尝试使用相对路径:../ scripts / script.js访问资源,则.htaccess重写将尝试访问它,网址为www.example.com/page/scripts/script的.js。
我之前有这个URL重写与相对路径一起工作所以我知道它是可能的。我愚蠢地打破了我的.htaccess文件并没有备份,所以我不知道我是怎么做到的,并且经过几个小时的各种不同的尝试后无法复制它。有没有人知道如何在保留相对路径的同时删除.html扩展名?
提前感谢您提供任何帮助!
答案 0 :(得分:0)
我不是htaccess文件的专家,但是你可以试试这里:
RewriteEngine On
#remove html extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^\.]+)$ $1.html
#remove php extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php
答案 1 :(得分:0)
尝试在html的标题中设置基本网址
<base href="//yourdomain/" />
如果您正在使用localhost
<base href="//localhost/yourdomain/" />