删除'#'来自HTML网页中使用htaccess的网址

时间:2017-01-03 11:36:02

标签: html regex .htaccess url-rewriting

我正在尝试删除以下网址中的#:( www.example.com/#section1)。我怎么能用htaccess文件做到这一点。我确信这可以使用正则表达式完成,但我不确定如何执行此操作。

这是我在htaccess文件RewriteRule ^[#]中编写的内容。

感谢您的帮助!

1 个答案:

答案 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);
}