我正在尝试删除以下网址中的#:( www.example.com/#section1)。我怎么能用htaccess文件做到这一点。我确信这可以使用正则表达式完成,但我不确定如何执行此操作。
这是我在htaccess文件RewriteRule ^[#]
中编写的内容。
感谢您的帮助!
答案 0 :(得分:1)
哈希(#
)不会发送到服务器,因此您无法在服务器上操作它们。
如果您确实需要删除它们,则必须在每个页面上使用JavaScript。
// Wait for the page to load, and call 'removeHash'.
document.addEventListener("DOMContentLoaded", removeHash);
document.addEventListener("Load", removeHash);
function removeHash() {
// If there is no hash, don't do anything.
if (!location.hash) return;
// http://<domain></pathname>?<search><#hash>
// Build an URL for the page, sans the domain and hash
var url = location.pathname;
if (location.search) {
// Include the query string, if any
url += '?' + location.search;
}
// Replace the loaded url with the built url, without reloading the page.
history.replaceState('', document.title, url);
}