Maxim_ka
@Maxim_ka
Системный инженер

Нужен совет по созданию первой страницы сайта

Добрый день, всем,

появился достаточно нубовский вопрос, есть небольшой сайт, никакого CMS, только CSS/HTML внутри есть некоторые блоки на PHP, страниц тоже не много максимум 15 наверное. Хотелось бы сделать чтобы при переходе по ссылкам отображалось нечто вроде site.ru/?page=price или site.ru/price.
Перерыл интернет, понятного моему мозгу примера не нашел. Прошу сообщество направить меня в нужное русло, а то чувствую, что велосипед сижу выдумываю.

Прошу сильно не ругать, я совсем не программист, знаком с PHP буквально пару месяцев.
  • Вопрос задан
  • 2488 просмотров
Пригласить эксперта
Ответы на вопрос 8
BuriK666
@BuriK666
Компьютерный псих
Чтоб ничего не переписывать в .htacces добавьте

RewriteEngine on
RewriteBase /

RewriteRule ^price$ index.php?page=price

или:
RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1
Ответ написан
3ds
@3ds
я бы посоветовал посмотреть модуль routing любого фреймворка, как они разбирают запрос. Например SlimPHP, Zend Framework etc… P.S. Slim маленький, думаю подойдет ;)
Ответ написан
Самый простой вариант сделать так:
<?php
//If is defined URL variable 'aboutme'
if(isset($_GET['aboutme'])){
// include page about me
include('include/in-aboutme.php');
//else if is defined URL variable 'interests'
}else if(isset($_GET['interests'])){
// include page interests
include('include/in-interest.php');
// in all other cases include the home page
} else {
include('include/in-home.php');
}
?>


Запрашивать страницы так — www.site.ru/?aboutme
Ответ написан
difiso
@difiso
В параллельной вселенной я космонавт
Это называется ClearUrl.

Для apache примерно так (взято откуда-то из гугла):

<Directory /var/www/example.com>
   RewriteEngine on
   RewriteBase /
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</Directory>

В файл index.php(можно и blablabla.php, как в RewriteRule напишите) придет GET параметр q (можно и page, на вкус и цвет, в общем), который вы будете обрабатывать.

То есть для данного примера будет следующее:
example.com/price приведет к вызову сервером уже example.com/index.php?q=price.

Таким образом example.com/price, example.com/?q=price и example.com/index.php?q=price эквивалентны для сервера, а что подавать пользователю, я думаю вы догадаетесь :)
Ответ написан
d4rkr00t
@d4rkr00t
.htaccess копать в сторону RewriteRule просто сам их давно не писал.
Ответ написан
Voenniy
@Voenniy
народ уже не может без фреймворков для решения простейших задач :)
Самое простое:
.htaccess
RewriteEngine On
RewriteRule ^([^.]+)$ index.php


index.php
$args =  explode('/',trim($_SERVER['REQUEST_URI'], '/'))


соотвественно, при запросе site.ru/price/catalog/123/foo/bar
в $args будет
if($args[0] == 'price'){
    // делаем для цены. и тд и тп.
}
Ответ написан
Ваш ответ на вопрос

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

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