@Yea_intenet

Как показывать страницы с mod_rewrite?

htaccess содержит:

RewriteEngine on
 RewriteRule ^([a-zA-Z0-9_-]+)$ urltest.php?post=$1


Но "проблема" в том, что страница по адресу, например, site.ru/about воспринимается, как
site.ru/urltest.php?post=about

Как выводить нужную страницу? Если какие-нибудь исключение в mod_rewrite? Или нужно писать что-то вроде:

<?php

 $page = $_GET['post'];

 if ($page === 'about') {
  require 'about.php';
 }else if ($page === 'main') {
  require 'main.php';
 }else {
  /*  и тд. и тп.*/
 }

?>
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
Padreramnt
@Padreramnt
Padreramnt
httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rew...
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]

-f наличие файла
-d наличие директории
!-f отсутствие файла
!-d отсутствие директории
допустим запрос на несуществующий файл: www.example.ru/dummydir будет парезаписан на www.example.ru/index.php?page=dummydir... (далее будут идти параметры get-запроса)
тоже самое и для файла
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы