How to remove or change .html extension in my url using javascript or jQuery?
本问题已经有最佳答案,请猛点这里访问。
我的HTML页面URL是www.example.com/training/product.html。我想把我的网址改成www.example.com/training/product。是否可以使用javascript或jquery?怎么用?
抱歉,由于声誉限制,我无法发表评论。
正确的解决方案还没有出现在评论中。
1 | window.history.replaceState() |
做这项工作。
我会这样做:
1 2 3 | var link = 'www.example.com/training/product.html'; link.split('.html')[0]; window.history.replaceState( null, null, link ); |
要获得更受尊重的解决方案,请转到如何在javascript中可靠地获取不带后缀的文件名?
链接:https://developer.mozilla.org/en-us/docs/web/guide/api/dom/operating_-browser_-history_the_-replaceState().c2.a0方法
使用
1 2 3 4 | var newURL = window.location.protocol +"//" + window.location.host +"/" + window.location.pathname; if (a.indexOf('html') > -1) { //Check of html String in URL. url = url.substring(0, newURL.lastIndexOf(".")); } |
如果您正在查看服务器级别的更改,下面是.htaccess文件的规则
1 2 3 4 5 6 7 8 9 10 11 12 | RewriteEngine On # remove trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ http://example.com/folder/$1 [R=301,L] # Redirect external .html requests to extensionless url RewriteCond %{THE_REQUEST} ^(.+)\.html([#?][^\ ]*)?\ HTTP/ RewriteRule ^(.+)\.html$ http://example.com/folder/$1 [R=301,L] # Resolve .html file for extensionless html urls RewriteRule ^([^/.]+)$ $1.html[L] |
您可以使用MVC来实现这一点。这不能由javascript完成。这需要在服务器端完成。
使用jquery尝试此操作:
1 2 | var url ="www.example.com/training/product.html"; url = url.substring(0, url.lastIndexOf(".")); |