3

我已经搜索了大约一个星期,但仍然找不到我的问题的答案,所以我终于停下来问这里!我要完成的是仅当 URL 最后包含 #NOTECHWORKING 时才重定向 URL。注意#。我已经尝试过简单的重定向,但包含的 # 没有任何效果。

这是我没有成功的尝试:

RewriteCond %{REQUEST_FILENAME} #NOTECHWORKING  
RewriteRule ^.*$ http://www.mydomain.com/chatclosed.html [L]

这:

RewriteCond %{REQUEST_URI} #NOTECHWORKING 
RewriteRule ^.*$ http://www.mydomain.com/chatclosed.html [L]

并且:

RewriteCond %{QUERY_STRING} #NOTECHWORKING 
RewriteRule ^.*$ http://www.mydomain.com/chatclosed.html [L]

如果这需要在 Javascript 中完成,我将不知道如何做到这一点!

任何帮助将不胜感激。谢谢!

4

2 回答 2

1

浏览器通常不会将#fragments 发送到服务器,因此您的重写条件永远不会被触发

您可以通过检查 window.location.hash 属性的值来使用 Javascript 实现类似的效果

if(window.location.hash == "#NOTECHWORKING") {
    window.location.href = '/newurl.html';
}

但是,这仅适用于浏览器,因此搜索引擎将无法跟踪您的重定向。

于 2012-11-12T23:24:02.043 回答
1

它可以通过使用 JavaScript 来完成。使用后退/下一步按钮应用命令:

window.onhashchange = function() {
    var h=window.location.hash;
    if(h.substr(1) == 'NOTECHWORKING') window.location.replace("http://www.mydomain.com/chatclosed.html");
};
于 2012-11-12T23:30:20.707 回答