Создайте редирект apache для одной страницы, но не для дочерних страниц - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь сделать простой Apache Redirect, который перенаправляет одну страницу на новый URL, но не на дочерние страницы. Э.Г.

Перенаправление www.mysite.com/old на www.mysite.com/new

Я НЕ хочу перенаправлять www.mysite.com/old/page1 на www.mysite.com/new/page1 или любые дочерние страницы /old.

Использование перенаправления, как показано ниже, включает дочерние страницы:

Redirect 302 /old /new

Как я могу перенаправить только верхнюю / родительскую страницу, но не дочерние страницы?

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Это то, что я искал:

RedirectMatch permanent ^/old$ /new
0 голосов
/ 07 ноября 2018

Используйте RewriteCond и RewriteRule, вот так:

RewriteCond %{REQUEST_URI} ^/old$
RewriteRule "(.*)" "http://www.example.com/new" [R=302,L]

Таким образом вы проверяете, что запрошенный URI - "/ old", и ничего больше.

^/old$:

  • ^ начинается с
  • $ оканчивается на
  • R=302: вы можете поставить другой статус, если хотите, например 301
  • L: последняя перезапись для проверки, дальнейшая перезапись не применяется

Если вы попробуете http://www.example.com/old/somepage.html, он не будет соответствовать RewriteCond, поскольку он не соответствует ^/old$ и не будет перенаправлять.

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