Как настроить перенаправление для страницы сайта 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]
Суть происходящего:
- Делаем 301 редирект с /new/page/id=3 на /new/page/3
- Передаем обработку скрипту по адресу /new/page/index.php
- Подразумевается, что .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. Рекомендую разворачивать каждый проект на отдельном домене, чтобы в подобных сценариях упростить себе жизнь.