我一直致力于将深度链接集成到正在开发的 wordpress 网站中; http://dhp.camoconnell.com/
问题,它在子页面上工作,而不是在主页上。例如,这有效
http://dhp.camoconnell.com/portfolio/snow/5
但这不是,
我正在使用 Modernizr 来检查 HTML5 历史记录,并使用 jquery 地址作为后备;
function initUrlHandler() {
if(Modernizr.history) {
if(window.location.hash != '') {
changeUrl({}, window.location.hash.replace('#/', '/'));
}
window.addEventListener('popstate', function(e) {
onUrlChange(window.location.pathname);
},true);
} else {
if(window.location.pathname.length > 1) {
window.location.href = '/#'+window.location.pathname;
}
$.address.externalChange(function(event) {
onUrlChange(event.value);
});
onUrlChange(window.location.hash);
}
if(firstUrlChange) {
onUrlChange(document.location.pathname);
}
}
function changeUrl(state,url) {
if(Modernizr.history) {
history.pushState(state, null, '/'+url);
} else {
window.location.hash = '/'+url;
}
}
function onUrlChange(pathName) {
var pathSplit = pathName.match(/(\d+)/);
currentSlide = (pathSplit == NaN || pathSplit == undefined || pathSplit > options.slides.length) ? 0 : parseInt(pathSplit)-1;
if(firstUrlChange) {
firstUrlChange = false;
loadInitImages();
}
两个示例中使用的模板是相同的。alert()
放在 init func 中的一个initUrlHandler()
没有返回任何内容,这让我认为.htaccess
文件可能存在干扰。
我已经看过它,但没有设法在那里找到问题。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>
# END WordPress
感谢您的帮助,真的卡住了