Переопределение Url-Адресов: Домашняя Страница Будет Отображаться В Двух Разных Url-Адресах.

  • Автор темы Елена1979461723
  • Обновлено
  • 21, Oct 2024
  • #1

Я хочу иметь два разных URL-адреса для одной и той же страницы. В частности, я хочу иметь конкретный URL-адрес, который будет показывать мою главную страницу. Однако URL-адрес следует сохранить. Итак, эти два URL-адреса

 
 
 add_rewrite_rule('^page1', 'index.php?pagename=$matches[1]', 'top');
 

оба должны отображать главную страницу. Я думал, что это можно сделать с помощью WordPress www.mywebsite.com/page1 function, but I didn't have success with that yet.

Когда я делаю это

add_rewrite_rule('^page1', 'index.php', 'top');

Это больше похоже на перенаправление. Когда я пытаюсь получить доступ add_rewrite_rule I get redirected to my homepage. But I want the URL to stay the same, which this doesn't seem to do.

Когда я делаю это

www.mywebsite.com/ www.mywebsite.com/page1

он просто показывает страницу www.mywebsite.com/page1 вместо домашней страницы.

Я уже несколько часов возился с правилами переписывания и почти потерял рассудок. Возможно ли вообще то, что я хочу?


Редактировать: Этот вопрос отличается от многих других вопросов тем, что я пытаюсь показать главную страницу. Решение предоставлено здесь решает эту проблему, когда вы можете использовать переменную запроса местоположения, но у меня не получилось с этим работать.

#url-rewriting #rewrite-rules

Елена1979461723


Рег
11 Jun, 2011

Тем
74

Постов
189

Баллов
599
  • 25, Oct 2024
  • #2

WordPress всегда будет пытаться перенаправить на канонический URL-адрес, чтобы предотвратить дублирование контента, поэтому вам придется отключить этот механизм, чтобы получить другой URL-адрес для отображения этой страницы.

Во-первых, ваше правило перезаписи:

 
 function my_redir_check( $redirect_url, $requested_url ){

if( home_url( '/page1/' ) == trailingslashit( $requested_url ) ){

return false;

}

return $redirect_url;
}
add_filter( 'redirect_canonical', 'my_redir_check', 10, 2 );
 

Затем отфильтровать redirect_canonical to return false if the requested URL is your 2nd home URL:

add_rewrite_rule('^page1', 'index.php?pagename=your-page-name', 'top');
 

Circassian


Рег
06 Mar, 2011

Тем
84

Постов
200

Баллов
630
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно