Как добавить / blog / в качестве префикса к структуре постоянных ссылок для сообщений блога, страниц тегов и т. Д.?

19

Я использую Wordpress 3.1.3 в качестве полной CMS, установленной в корневом каталоге домена. Я настроил его, используя встроенные опции, чтобы статическая страница была домашней страницей, а затем мой блог по адресу http://www.example.com/blog.

Я хотел бы, чтобы мои посты в блоге, страницы категорий, страницы архивов и страницы тегов, а также любые другие страницы, связанные с блогами, имели «префикс» / blog / в своей структуре ссылок. Таким образом, адрес публикации будетwww.example.com/blog/post-title


Прямо сейчас у меня только страницы категорий работают правильно. Это было достигнуто путем добавления следующей строки в мой .htaccesфайл:

RewriteRule ^category/(.+)$ http://www.example.com/$1 [R=301,L]

Затем я установил для базы категорий «блог» на странице настроек постоянных ссылок в Wordpress. Это дает страницам категорий URL-адрес: www.example.com/blog/category-name(без удаления префикса категории у .htaccessних был URL-адрес category/blog/category-name).


В попытке заставить это работать для других вещей, для которых я хочу, чтобы я работал, я установил для своей базы тегов значение «блог». Я также сделал свою собственную структуру постоянных ссылок: /blog/%postname%(как было предложено в нескольких темах, которые я нашел в поиске в Google).

Эти настройки дают URL-адресам для отдельных сообщений блога, страниц тегов и страниц архива искомую структуру URL. Однако все это приводит к 404 ошибкам.

Я удалил свой .htaccessфайл, чтобы убедиться, что Wordpress пишет в него, и это так. Если я удаляю /blog/из структуры постоянных ссылок, все работает правильно, но у меня больше нет структуры URL, которую я ищу.

Я не знаю, что мне делать. Я продолжаю читать темы и руководства, в которых говорится, что это так же просто, как добавить /blog/в структуру постоянных ссылок, но до сих пор это было не так просто.

Я был бы очень признателен, если кто-нибудь знает, как я могу заставить это работать.

.htaccess содержание:

<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteBase / 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule>
Престон
источник
Как примечание, постоянная ссылка, показанная, редактируя сообщение, является "неправильной". Это не покажет окончательную ссылку.
Алексис Уилк

Ответы:

5

Перейдите в Настройки> Постоянные ссылки и добавьте его в структуры постоянных ссылок.

xLRDxREVENGEx
источник
1
Это была одна из первых вещей, которые я попробовал, и это привело к 404 ошибкам. Поэтому я отключил его на несколько часов и решил попробовать снова после прочтения вашего ответа. Теперь это работает для моих отдельных постов. Я также заставил страницы категорий работать снова. Это просто оставляет страницы тегов и страницы архива, которым нужен / blog /.
Престон
Если вы посмотрите на страницу, там есть место для тегов. Что касается архивных страниц, вы говорите о странице, которая показывает список статей, тегов, категорий и т. Д. Или заархивированных сообщений
xLRDxREVENGEx
С тегами, если я добавлю блог в область Tag Base, это даст мне правильную структуру URL «mydomain.com/blog/tag-name», но эта страница затем выдаст мне ошибку 404. Под архивами я подразумеваю страницу, которая показывает заархивированные сообщения за определенный месяц. Я хотел бы, чтобы URL был mydomain.com/blog/2011/05. Эта структура URL появляется, когда я нажимаю на ссылку архива, но также выдает ошибку 404. И теперь я снова получаю 404 ошибки за отдельные записи в блоге. Может ли это быть плагин, который вызывает проблемы?
Престон
Правильно ли настроен ваш .htaccess?
xLRDxREVENGEx
Я верю в это, Wordpress добавляет в правила перезаписи каждый раз, когда я их изменяю. Должно ли там быть что-то конкретное для чего-то подобного?
Престон
27

Вы получаете 404 ошибки, когда добавляете "/ blog /" в структуру пользовательских постоянных ссылок, а затем также добавляете "/ blog /" в базу категорий. Это следует добавить только к одной, пользовательской структуре постоянных ссылок.

Если вы оставите свою базу категорий и теговую базу пустыми и просто добавите «/ blog /» в начало пользовательской структуры постоянных ссылок, чтобы она выглядела так: «/ blog /% postname% - это даст желаемый результат.

Ваши страницы будут выглядеть следующим образом: domain.com/pagename/ URL вашего сообщения будет выглядеть следующим образом: domain.com/blog/postname URL вашей категории будет выглядеть следующим образом - domain.com/blog/category/postname

Надеюсь, это полезно ...

дом
источник
1
Хороший улов при добавлении только в один раздел. Это решение также добавит / blog / к категории и архивным страницам, что хорошо. Это действительно должен быть принятый ответ.
Ян
Я рад, что этот метод также относится к URL для страницы категорий.
Эдвин Ип
1
Это должен быть принятый ответ на этот вопрос.
AndyWarren
2
он прикрепит префикс ко ВСЕМ вашим типам
постов
1
Обычный вопрос здесь, вероятно, будет таким: Как вы справляетесь с этим только для «публикации» типов постов и как вы переводите / блог, например, для разных языков? :)
trainoasis