Wordpress - Показать мой блог вместе с основным сайтом - PullRequest
1 голос
/ 28 декабря 2011

У меня уже есть мой основной сайт на PHP, работающий в корневой папке моего сайта. Давайте назовем это www.example.com. У меня около нескольких страниц. Некоторые из навигационных ссылок:

Главная | Услуги | О нас | Свяжитесь с нами

Я хотел добавить блог Wordpress к этому .. Так вот, что я сделал.

Главная | Блог | Услуги | О нас | Свяжитесь с нами

Обратите внимание, что теперь я создал подпапку «блог» в корневой папке веб-сайта, и я загрузил все «файлы» Wordpress в папку блога. Поэтому, если я хочу получить доступ к своему блогу, на данный момент я бы посетил: www.example.com/blog

Пока все хорошо. Теперь, когда я добавляю новые записи в блог, я НЕ хочу, чтобы люди видели "/ blog" в URL, когда они пытаются прочитать сообщения. Я перешел по следующей ссылке, но это не помогает: Предоставление WordPress собственного каталога

Приведенная выше ссылка поможет, если люди просто хотят разместить свой сайт Wordpress и ничего больше. Просто полезно поддерживать корневую папку в чистоте и по-прежнему получать доступ к URL-адресу из корневой папки. Но это не так со мной. У меня уже есть сайт на PHP, работающий в корневой папке. я просто хочу блог будет дополнением, но пропустите показ того, что он добавлен в другую папку.

Я также внес следующие изменения в админ панель WordPress:

На странице «Настройки> Общие»:

Адрес WordPress (URL): www.example.com/blog

Адрес сайта (URL): www.example.com

На странице «Настройки постоянной ссылки» выберите этот параметр: http://www.example.com/sample-post/

Теперь домашняя страница и другие страницы загружаются нормально.

ПРОБЛЕМА:

Когда я посещаю: www.example.com / blog , он говорит:

"Это немного смущает, не так ли? Кажется, мы не можем найти то, что вы ищете. Возможно, поиск или одна из ссылок ниже помогут. "

  1. Я не понимаю, почему я вижу выше, когда я ожидаю увидеть сообщение. Есть образец поста Hello Word. Я ожидал увидеть ссылку на это, но этого не произошло. Почему это происходит?

  2. Кроме того, если я нажму на ссылку «Главная страница», она вернется на домашнюю страницу веб-сайта, и это правильно. Но если я нажму на ссылку меню «Образец страницы» или «Hello World» в разделе «ПОСЛЕДНИЕ ПОСТЫ», в адресной строке появится следующий URL: www.example.com/hello-world/ Но это НЕ показывает мне пост. Вместо этого он загружает страницу index.php из корневой папки моего сайта, чего не должно быть. Похоже, что файл CSS не загружен, поскольку он удалил весь CSS. Итак, CSS-версия страницы index.php появляется, когда я захожу: www.example.com/hello-world/

Я пытался найти решения для этого, но все они привели к публикации «Предоставление WordPress своего собственного каталога». И решение, упомянутое на этой странице, не применимо в моем случае. Как это можно решить? Вся помощь приветствуется.

Спасибо.

Ответы [ 2 ]

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

Метод I

Это было бы грязно, и я не уверен, сработает ли это, но попробуйте выполнить следующие действия (надеюсь, ваш сайт процедурный, а выне используйте фреймворк, иначе это немного усложнит):

  1. Поместите блог в корень документа, чтобы все ссылки WP работали "естественно".
  2. Поместите вашфайлы сайта в подпапку site/.
  3. Теперь мы поработаем с .htaccess и перепишем ссылки на ваш сайт, поставив следующий код сразу после RewriteEngine on:

    # do this for all pages of your site:
    RewriteRule ^services/?$ /site/services/$1 [L,QSA]
    # now let's try to trick WordPress and swap / with /blog
    # so users will see /blog in adressbar, but we'll show the WP homepage
    RewriteRule ^blog/(.*)?$ /$1 [L,QSA]
    
  4. Теперь мы должны заставить WP думать, что /blog на самом деле /, поэтому он не будет вызывать никаких подозрений.Поместите следующий скрипт в файл index.php Wordpress перед любым другим кодом:

    if( $_SERVER['REQUEST_URI'] == '/' ){ // original site homepage requested
        include('./site/index.php');
        exit;
    }
    
    if( trim($_SERVER['REQUEST_URI'], '/') == 'blog' ){
        $_SERVER['REQUEST_URI'] = '/';
        $_SERVER['QUERY_STRING'] = '';
    }
    

Я ничего не тестировал, но вы должны поиграться с этим.

Метод II

Я не опытный пользователь WP, но если поиграться с предложением с постоянными ссылками из ответа @ bingjie2680 изменит URL-адреса, тогда вы можете попробовать только одинбольше вещей в дополнение к этому ответу.Добавьте что-то похожее на следующие строки в .htaccess, который находится в корневом каталоге вашего документа (не в WP):

    RewriteCond %{REQUEST_URI} !^(services|about|or_other_stuff)/?$
    # Rewrite the request to call the WP index.php.
    RewriteRule ^(.*)$ /blog/index.php/$1 [L,QSA]

Может быть, есть другие методы, может быть, истинное решение смешало бы оба этих варианта.Продолжайте пытаться.

0 голосов
/ 28 декабря 2011

Не думаю, что возникнет проблема, если вы выполните следующие действия:

  • не нужно ничего менять на исходном сайте.
  • создайте папку с именем blogв вашей корневой директории и поместите все файлы WordPress здесь.
  • следуйте пяти шагам, чтобы настроить свой блог
  • ваш URL WordPress и URL сайта должны быть оба yourdomain.com/blog
  • На странице «Настройки постоянной ссылки» выберите эту опцию: www.example.com/sample-post/
  • , чтобы сохранить ваше меню следующим образом: Главная |Блог |Услуги |О нас |Свяжитесь с нами с помощью «блога», указывающего на yourdomian.com/blog

Теперь, если вы нажмете на меню блога, URL вашего сайта будет yourdomian.com/blog, но если вы нажмете на одно из сообщенийскажите «привет мир», тогда ваш URL будет yourdomian.com/hello-world.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...