Wordpress - Глубокая ссылка не работает на главной странице - PullRequest
0 голосов
/ 12 декабря 2011

Я работаю над интеграцией Deeplinking в 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 initc 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

спасибо за любую помощь, действительно застрял

1 Ответ

1 голос
/ 13 декабря 2011

попробуйте это:)

# 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
...