SteweX
@SteweX

ЧПУ Ссылки для php?

Здравствуйте, пытаюсь сделать ЧПУ ссылки для сайта. Перелазил весь интернет, и перебробовал много вариантов, ни один из не помог.
Из этой ссылки mydomain.com/thread.php?t=21, надо сделать mydomain.com/thread/21 или mydomain.com/thread/t/21.
Пробовал делать через htacces
Заранее спасибо за помощь!
  • Вопрос задан
  • 167 просмотров
Решения вопроса 2
shambler81
@shambler81 Куратор тега htaccess
RewriteCond %{QUERY_STRING} (?:^|&)t\=21(?:$|&)
RewriteRule ^mydomain\.com/thread\.php$ /mydomain.com/thread/21? [L,R=301]


Это прям если нужно редирект сделать
GET не является частью URL и выделяется отдельно. через %{QUERY_STRING}
так что у вас по идее нужно было сделать так.
index.php?route=%1
%1 - это $1 но если ты выделяешь в RewriteCond

Что же касается ЧПУ

RewriteEngine On
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !/index.php$
RewriteRule ^(.*)$ /index.php [L]

То я бы добавил еще отрицание самого индекса дабы не создать цикла.

ps
?: не учитывать эту группу не обязательное правило
Ответ написан
XBEHOLI
@XBEHOLI
back-end developer
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

В php
if(isset($_GET['route'])) {
   if ($_GET['route'] == "test") {
      echo "site.com/teet";
   }
}


Как-то так, если вы конечно не хотите mvc. Дополните меня если что или поправьте
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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