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

php文件中的锚链接指向index.html,php,html,yaml,Php,Html,Yaml,我有一个文件index.php,主要包含HTML和一些php。我已经为一些元素(例如,联系人)声明了ids,并提供了指向它们的链接(参见下文) 单击时链接工作正常(即,用户被带到锚定点),但它们指向,例如,index.html#contact,因此当重新加载页面时,会出现500个错误 如何避免这种行为?为什么会这样呢 顺便说一句,我正在使用CSS框架。更新: 为什么不用js:)破解它呢 更新结束 链接中的散列(#)表示同一页面中某个元素的“ID” href="#id" .. means

我有一个文件
index.php
,主要包含HTML和一些php。我已经为一些元素(例如,
联系人
)声明了
id
s,并提供了指向它们的链接(参见下文)

单击时链接工作正常(即,用户被带到锚定点),但它们指向,例如,
index.html#contact
,因此当重新加载页面时,会出现500个错误

如何避免这种行为?为什么会这样呢

顺便说一句,我正在使用CSS框架。

更新: 为什么不用js:)破解它呢

更新结束

链接中的散列(#)表示同一页面中某个元素的“ID”

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

href="link" .. means index.php/link <-- redirect to file called 'link'
href=“#id”。。means index.php/#id尝试使用以下方法:

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

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

您可以使用javascript在您的元素上滚动,这样URL就不会改变,并且当您重新加载页面时,会有起始URL。

这很奇怪,因为它应该可以工作。正如其他人所建议的,请查看您的错误日志。同时,您可以尝试以下快速修复方法:

在您的


接触
这将使您的


您的错误日志在500错误中显示了什么?应该是
不是。idYAML不使用任何服务器端脚本,所以它不应该创建任何500错误。@Dagon html5需要ID<代码>名称属性在HTML5中不受支持。改为使用id属性。
如果你是html5,你又一次挫败了我。nginx是否像ApacheHTTPD一样使用.htaccess?@ITPAL24:好吧,第一个例子就是我正在做的,不是吗?我正在使用
@QueNuevo链接到
id
s-请检查您的htaccess,如果您在htaccess中激活了文件扩展名,它可能会认为#contact是一个文件名..nginx不使用htaccess,我也无权访问nginx配置:(.@QueNuevo-检查浏览器是否在链接末尾添加“/”。例如,感谢您的建议,联系/?Hm可能会研究一下,尽管用另一个脚本替换您期望的基本功能听起来有点昂贵。我认为问题不是在同一页面上获得可单击的链接,而是重新加载页面h修改后的URL。您的答案没有帮助。
href="#id" .. means index.php/#id <-- scroll to an id element

href="link" .. means index.php/link <-- redirect to file called 'link'
<ul>
  <li><a href="#contact">Contact</a></li>
</ul>

<h2><a id="contact">Contact</a></h2>
<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 href="http://example.com/index.php#contact">Contact</a>