|
|
|
| Всем привет
подскажите как лучше поступить ....
в файле htaccess автоматом создаются правила типа:
RewriteRule ^belgium$ countries/cntr.php?cntr=94
|
файл уже весит около 8 метров и сильно тормозит загрузку страниц.
Можно как-то добиться тогоже RewriteRule но чисто посредством php, если заранее известно что перенаправить нужно на belgium (физически странички конечно нет)
Спасибо | |
|
|
|
|
|
|
|
для: 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)."'");
|
| |
|
|
|
|
|
|
|
для: Sfinks
(07.06.2013 в 08:41)
| | Извините, не совсем понятен механизм. Htaccess перенаправляет все на роутер, а дальше то что? Как можно сделать ссылку красивой типа
Мало того, по этой ссылке еще нужно заходить на эту страну | |
|
|
|
|
|
|
|
для: zeeg
(07.06.2013 в 23:45)
| | Никто не подскажет? | |
|
|
|
|
|
|
|
для: 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' и можете его использовать как вам необходимо. | |
|
|
|