Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: RewriteRule
 
 автор: zeeg   (06.06.2013 в 22:46)   письмо автору
 
 

Всем привет
подскажите как лучше поступить ....

в файле htaccess автоматом создаются правила типа:

RewriteRule ^belgium$ countries/cntr.php?cntr=94


файл уже весит около 8 метров и сильно тормозит загрузку страниц.

Можно как-то добиться тогоже RewriteRule но чисто посредством php, если заранее известно что перенаправить нужно на belgium (физически странички конечно нет)

Спасибо

  Ответить  
 
 автор: Sfinks   (07.06.2013 в 08:41)   письмо автору
 
   для: zeeg   (06.06.2013 в 22:46)
 

Обычно в таких случаях просто перенаправляют все на роутер, а там уже разбирают что к чему:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ router.php?url=$1 [L,QSA]

А в router.php уже можно определить положение и в БД:
<?php
  $c 
trim($_GET['url']);
  
$res mysql_query("SELECT id FROM countries WHERE name='".mysql_real_escape_string($s)."'");

  Ответить  
 
 автор: zeeg   (07.06.2013 в 23:45)   письмо автору
 
   для: Sfinks   (07.06.2013 в 08:41)
 

Извините, не совсем понятен механизм. Htaccess перенаправляет все на роутер, а дальше то что? Как можно сделать ссылку красивой типа
sitename/Albania

Мало того, по этой ссылке еще нужно заходить на эту страну

  Ответить  
 
 автор: ZeeG   (08.06.2013 в 11:55)   письмо автору
 
   для: zeeg   (07.06.2013 в 23:45)
 

Никто не подскажет?

  Ответить  
 
 автор: Sfinks   (10.06.2013 в 11:28)   письмо автору
 
   для: zeeg   (07.06.2013 в 23:45)
 

> Как можно сделать ссылку красивой типа sitename/Albania
В моем примере уже все сделано.

Смотрите, как это работает:
Пользователь пишет в браузере: http://site.ru/Albania
В мод-реврайт поступает строка запроса: Albania
Проверяется сперва шаблон из RewriteRule: ^(.*)$ -подходит
Начинают проверяться условия RewriteCond:
%{REQUEST_FILENAME} !-f (не реально существующий файл) - верно
%{REQUEST_FILENAME} !-d (не реально существующая директория) - верно
Все подходит, значит начальная строка запроса (Albania) исправляется на router.php?url=Albania
Проверка начинается с начала, но уже с новым запросом: router.php
Проверяется шаблон: ^(.*)$ -подходит
Проверяются условия:
%{REQUEST_FILENAME} !-f (не реально существующий файл) - НЕ верно, проверка завершается.
И выполняется внутренний (браузер об этом ничего не знает, в адресной строке так и осталась красивая ссылка) вызов файла router.php с параметром url=Albania.
Соответственно, в файле router.php вы получаете параметр $_GET['url']='Albania' и можете его использовать как вам необходимо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования