2017-01-14 1 views
0

Dies ist eine vereinfachte PHP Version meiner Frage:die Seite neu laden mit verschiedenen URI Anker

Ich möchte http://localhost/test2.php in Browser laden, und wenn es #test_test fehlt, laden Sie sofort mit ihm http://localhost/test2.php#test_test.

<?php 

    // causes ERR_TOO_MANY_REDIRECTS 
    if (strpos(strtolower($_SERVER['REQUEST_URI']), 'test_test') === false) { 
     header("Location: /test2.php#test_test"); 
    } 

    ?>  

Kurz gesagt, ich will in einer URI für einen Anker überprüfen, wenn es fehlt, laden Sie die Seite mit ihm. Ich erhalte ERR_TOO_MANY_REDIRECTS. Irgendwelche Vorschläge, wie man das anpackt?

+2

Mögliches Duplikat [Wie Ankerteil der URL nach # in PHP erhalten] (http://stackoverflow.com/questions/1032242/how- to-require-anchor-part-of-url-after-in-php) – chris85

+0

Verwenden Sie 'window.location.href', um die vollständige URL der aktuellen Seite zu erhalten, und passen Sie sie dann an (z. B. indem Sie Teilstring darin suchen) –

+0

Antwort auf die 'ERR_TOO_MANY_REDIRECTS' ist der verknüpfte Thread. Sie haben nie 'test_test' also Sie loop .. (auch sollten Sie nach einem' header' 'exit') gehen – chris85

Antwort

1

Sie können es mit js auf diese Weise:

let currentUrl = window.location.href; 

if (currentUrl.indexOf('#test_test') === -1) { 
    window.location.href = currentUrl.replace(/(#.+)/gi, '#_test_test'); 
} 
Verwandte Themen