@kostarev_v
Программирую для себя

Как сделать .htaccess редирект?

Настроил короткую ссылку
RewriteRule ^([0-9]+)$ /portfolio.php?id=$1 [NC,QSA]
Теперь вместо адреса /portfolio.php?id=1, можно написать адрес /1 и отобразится нужная страница.
Как теперь сделать принудительную переадресацию с адреса /portfolio.php?id=1 на /1?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
@dodo512
RewriteCond %{THE_REQUEST} " /portfolio\.php\?id=(\d+)"
RewriteRule ^ /%1? [R=301,L]

RewriteRule ^([0-9]+)$ /portfolio.php?id=$1 [L,QSA]


Или
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond &%{QUERY_STRING} &id=(\d+)
RewriteRule ^portfolio\.php$ /%1? [R=301,L]

RewriteRule ^([0-9]+)$ /portfolio.php?id=$1 [L,QSA]
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
GET не является частью урла, как следствие RewriteRule его физически не видит.
RewriteCond %{QUERY_STRING} (^|&)id\=([0-9]{1,})($|&)
RewriteRule ^portfolio\.php$ /%2? [L,R=301]

где %2 это 2 группа из RewriteCond
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы