Как настроить перенаправление для страницы сайта php?

Для страницы сайта с уникальным id необходимо настроить перенаправление его ссылки. Структура ссылки: site/page/index.php

Как мне сделать, чтобы при открытии страницы с объявлением site/page/?id=1 стало site.ru/page/1?

Пробовал так, но не получается:

RewriteEngine on
RewriteRule ^/site/post/([0-9]+)/? /site/post/?id=$1 [L]

Ответы (2 шт):

Автор решения: Jug-IT

Попробуйте в файл .htaccess добавить:

RewriteEngine on
RewriteBase /page/
RewriteCond %{REQUEST_URI}  ^/?id=([0-9]+)$ [NC]
RewriteRule ^(.*)$  $1
→ Ссылка
Автор решения: Laukhin Andrey

На основе уточненных данных предлагаю вариант:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/new/page/ [NC]
RewriteCond %{QUERY_STRING} id=([0-9]+) [NC]
RewriteRule . /new/page/%1? [R=301,L,NE]

RewriteCond %{REQUEST_URI} ^/new/page/([0-9]+)$
RewriteRule . /new/page/index.php [L,QSA,NE]

Суть происходящего:

  1. Делаем 301 редирект с /new/page/id=3 на /new/page/3
  2. Передаем обработку скрипту по адресу /new/page/index.php
  3. Подразумевается, что .htaccess находиться по адресу /new/.htaccess

Альтернативный вариант может быть:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/new/page/?id=([0-9]+)$ [NC]
RewriteRule . /new/page/$1? [R=301,L,NE]

RewriteCond %{REQUEST_URI} ^/new/page/([0-9]+)$
RewriteRule . /new/page/index.php [L,QSA,NE]

Но на XAMPP у меня не заработал.

P.S. Рекомендую разворачивать каждый проект на отдельном домене, чтобы в подобных сценариях упростить себе жизнь.

→ Ссылка