php文件中的锚点链接指向index.html

时间:2014-11-17 22:15:13

标签: php html yaml

我有一个文件index.php,主要包含HTML和一些PHP。我已为某些元素声明id s(例如<h2 id="contact">Contact</h2>)并提供指向它们的链接(参见下文)。

<ul>
  <li><a href="#contact">Contact</a></li>
</ul>

链接在单击时工作正常(即,用户被带到锚点),但是他们指向例如index.html#contact,以便在重新加载页面时,您会收到500错误。 / p>

如何避免这种行为?为什么它会以任何方式发生?

我正在使用YAML CSS框架btw。

4 个答案:

答案 0 :(得分:0)

<强>更新 你为什么不用js破解它?)

location.replace("http://www.w3schools.com");

更新结束

链接内的散列(#)表示同一页面内元素的“ID”。

href="#id" .. means index.php/#id <-- scroll to an id element

href="link" .. means index.php/link <-- redirect to file called 'link'

此外,您需要在htaccess启用时重定向到没有文件扩展名的文件。例如php / html

您的问题

检查您现有的htaccess

答案 1 :(得分:0)

尝试使用它:

<ul>
  <li><a href="#contact">Contact</a></li>
</ul>

<h2><a id="contact">Contact</a></h2>

&#13;
&#13;
<script>

    function getPosition(element){
        var e = document.getElementById(element);
        var left = 0;
        var top = 0;

        do{
            left += e.offsetLeft;
            top += e.offsetTop;
        }while(e = e.offsetParent);

        return [left, top];
    }

    function jumpTo(id){    
        window.scrollTo(getPosition(id));
    }

</script>
&#13;
<ul>
<li><a href="#" onclick="jumpTo('contact');">Contact</a></li>
</ul>

<h2><a href="#" id="contact">Contact</a></h2>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您可以使用javascript滚动元素,这样网址就不会更改,重新加载页面时会显示起始网址。

答案 3 :(得分:0)

这很奇怪,因为它应该有效。正如其他人建议的那样,看看你的错误日志。与此同时,您可以尝试这种快速修复:

您可以使用php的帮助,而不是#contact <a>,而不是<html> <head>...</head> <body> <ul> <li><a href="<?php echo getPageUrl(); ?>#contact">Contact</a></li> </ul> <h2 id="contact">Contact</h2> </body> </html> <?php function getPageUrl(){ return 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; } ?>

<a>

这应该使您的<a href="http://example.com/index.php#contact">Contact</a> 看起来像这样

{{1}}