我有静态html文件,我希望能够在地址栏内的网址末尾删除 .html
文件扩展名。
因此,我希望它显示为/contact-us.html
/?contact-us
有一点需要注意的是页面名称前面有一个问号。我想对任何html页面执行此操作,而不只是contact-us.html
。我怎样才能做到这一点?
答案 0 :(得分:1)
您可以使用以下方法在.htaccess中重写单页:
RewriteEngine On
RewriteRule ^/contact-us.html$ /?contact-us [NC,L]
更具体地说,如果要重写所有.html扩展名,可以使用正则表达式来匹配页面模式:
RewriteEngine On
RewriteRule ^(.*)(.html)$ /?$1 [NC,L]
在上面的示例中,它将匹配任何.html扩展名。例如/example-page.html将是/?example-page
您可以在htaccess测试人员身上测试一下:http://htaccess.mwl.be/
但是,问号(?)是为查询字符串保留的,并且您的重写可能会以无限循环结束,因为规则会将http://www.example.com/example-page.html重写为http://www.example.com/?example-page,服务器将解析为http://www.example.com/index.html?example-page,这反过来会触发另一次重写,无限制。
更好的方法是模拟目录结构,并将/example-page.html重新编写到/ example-page /这也为您提供了一些SEO优势,并且可以使用此.htaccess:
RewriteEngine On
RewriteRule ^(.*)(.html)$ /?$1/ [NC,L]
答案 1 :(得分:0)
如果您希望能够使用文件夹路径而不是.html,则需要这些规则。
这允许您在地址栏中使用function processForm(e) {
jQuery.ajax( {
type: 'POST',
url: '/ajax/checkbox.php',
data: { foton : jQuery(e).val()},
success: function(data) {
jQuery('#message').html(data);
}
});
}
。
http://domain.com/contact-us
答案 2 :(得分:0)
将此添加到.htaccess文件中:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.html [NC,L]