vanesxl
@vanesxl

Как реализовать такое чпу?

Здравствуйте, помогите реализовать следующее
Есть сайт по адресу domen.ru
Как сделать так чтобы адреса типа:
domen.ru/news/?page=1
domen.ru/news/

ссылались на index.php, который лежит в корне сайта. А вместо news могло быть любое другое слово.
Т.е. нужно что то типа чпу, то чтобы еще можно было добавлять в конце обычный гет запрос.
Заранее большое спасибо!
  • Вопрос задан
  • 325 просмотров
Решения вопроса 1
vanesxl
@vanesxl Автор вопроса
Реализовал вот так:
В файле htaccess прописал
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
  
# RewriteCond %{HTTP_HOST} !^www.
# RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]
  RewriteRule ^(.*)sitemap.xml$ index.php?rewrite=sitemap.xml [QSA]
  RewriteRule ^(.*)/$ index.php?rewrite=$1 [QSA,L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php?rewrite=$1 [QSA,L]
# RewriteRule ^index.php\/(.*)$ index.php?rewrite=index.php/$1 [QSA]
# If-Modified-Since (if php is not installed as cgi then comment lines below)
  RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]
  RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]
</IfModule>

В итоге получается если в php прописать:
<?php 
echo $_SERVER['QUERY_STRING'];
?>

результатом будет строка:
rewrite=news&page=1 
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
myfirepukan
@myfirepukan
Жарим поиск
Чиайте про роутинг. Можно ещё с помощью htaccess замутить но это не так удобно.

UP
Если без фреймворков и классов то как-то так:
$url = trim($_SERVER['REQUEST_URI']);
$pieces = explode("/", $url);
...
if(preg_match('/\/news\//is',$url,$matches_art) ){
if ($matches_art) {
                            include 'system/news.php';
                            $is404 = 0;
                            }
}
Ответ написан
Ваш ответ на вопрос

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

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