0

我一直致力于将深度链接集成到正在开发的 wordpress 网站中; http://dhp.camoconnell.com/

问题,它在子页面上工作,而不是在主页上。例如,这有效

http://dhp.camoconnell.com/portfolio/snow/5

但这不是,

http://dhp.camoconnell.com/2

我正在使用 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

感谢您的帮助,真的卡住了

4

1 回答 1

1

试试这个 :)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
# wp base folder
RewriteCond %{REQUEST_URI} ^/wp/?
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
于 2011-12-13T08:52:26.070 回答