[英]Issue with # in URL with a Wordpress theme?
我遇到了一个严重的问题,并且不知道发生了什么......我将指出导致此Wordpress驱动的门户网站出现多个问题的一般问题。
重现步骤:
现在,考虑以下情况:
我已经尝试过几种与永久链接的组合,所以这不是问题。 我甚至在php中编写了我自己的Comment链接生成器,只有一个简单的href="#comments"
但还是没有运气......
如果您需要有关theloop.php中任何函数代码的任何进一步信息或其他任何信息,请告诉我。
提前致谢 ! 问候
.htaccess的内容如下:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
这不是PHP问题,它是Javascript:当你重现它时很明显,你可以通过禁用Javascript并在URL的末尾添加#comments
来测试它; 它会工作。
现在,我为你做了一些工作,罪魁祸首是一个名为hashchange.js
的Javascript文件。 例如,看看这一行:
function second_passed() {
if(current_page!=location.href {
get_page_by_hash(location.href);
}
setTimeout(second_passed,1000);
}
这解释了为什么你看到它“工作”一秒钟。
这是重定向:
jQuery(window).hashchange(function() {
var link = window.location.hash.replace("#", "");
get_page_by_hash(link)
});
请注意, hashchange
是jQuery Mobile中可用的事件处理方法。
<link rel="canonical" href="URL OF YOUR HOMEPAGE HERE>
将其添加到<head></head>
部分的header.php中,然后尝试。 它不应该给404错误!
如您所知,页面书签的使用方式是锚点的href =“”指向#some-place。 为了实现这一点,#some-place必须是您希望转到的页面中元素的id。
例如:
http://gamersgeographic.com/monster-hunter-diary-1/#respond
应该带你到那个页面中id =“respond”的元素。
如果具有该ID的元素不存在,您将无法前往它,并且可能是导致404 Not Found的原因。 但是,如果元素确实存在于具有正确ID的页面上,并且仍然重定向到404,那么您可能需要检查Web服务器配置以确保它不以某种方式过滤#。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.