Как сделать человеко-понятный URL (ЧПУ)?
Например, чтобы вместо site.ru/index.php?name=vasya&surname=pupkin было, например, site.ru/pupkin/vasya ?
Мы платим до 300 руб за каждую тысячу уникальных поисковых переходов на Ваш вопрос или ответ Подробнее
4 ОТВЕТА |
В .htaccess пишете:
Вот и все - после этого все запросы будут передаваться в параметре $_GET['q'] в файл dispatcher.php. А там пишете примерно такой код:
Это конкретно для Вашего случая. Но обычно интерпретация идет иначе - в зависимости от $params[0] вставляется (директивой include) необходимый файл, а передаваемые ему параметры присваиваются вручную, типа того:
Ну вот так примерно!
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/img/favicon.ico
RewriteRule ^(.*)$ dispatcher.php?q=$1 [L,QSA]
Вот и все - после этого все запросы будут передаваться в параметре $_GET['q'] в файл dispatcher.php. А там пишете примерно такой код:
if (isset($_GET['q']))
{
//start interpret
$params = explode("/",$_GET['q']);
$_GET['name'] = $params[0];
$_GET['surname'] = $params[1];
}
Это конкретно для Вашего случая. Но обычно интерпретация идет иначе - в зависимости от $params[0] вставляется (директивой include) необходимый файл, а передаваемые ему параметры присваиваются вручную, типа того:
if (isset($_GET['q']))
{
//start interpret
$params = explode("/",$_GET['q']);
switch ($params[0])
{
case 'param':
{
$_GET['param1'] = $params[1];
$_GET['param2'] = $params[2];
...
break;
}
Ну вот так примерно!
Да, только еще сервер надо настроить - для Apache в httpd.conf должна быть строка LoadModule mod_rewrite.so, для Вашей директории должно быть AllowOverride All.
Вообще, описанный выше подход не вполне кошерен и годится лишь для эксперимента. Более круто было бы настраивать ВСЕ Rewrite-ы в .htaccess, а не в пхп. Думаю, выше ответившие согласятся.
Помогите привести в нормальный вид URL:
/cgi-bin/profkomfort/index.pl?text=page&i=1
/cgi-bin/profkomfort/index.pl?text=page&i=2
/cgi-bin/profkomfort/index.pl?text=page&i=3
/cgi-bin/profkomfort/index.pl?text=page&i=4
У меня путаница как тут прописать????
Что куда подставить????
RewriteEngine on
RewriteCond %{REQUEST_URI} .htm$
RewriteRule ^(.+)$ %{REQUEST_URI} [C]
RewriteRule (.+)/([^/]+)/([^/]+)$ /cgi-bin$1/index.pl?text=exchanger&p=$3
/cgi-bin/profkomfort/index.pl?text=page&i=1
/cgi-bin/profkomfort/index.pl?text=page&i=2
/cgi-bin/profkomfort/index.pl?text=page&i=3
/cgi-bin/profkomfort/index.pl?text=page&i=4
У меня путаница как тут прописать????
Что куда подставить????
RewriteEngine on
RewriteCond %{REQUEST_URI} .htm$
RewriteRule ^(.+)$ %{REQUEST_URI} [C]
RewriteRule (.+)/([^/]+)/([^/]+)$ /cgi-bin$1/index.pl?text=exchanger&p=$3
ПОХОЖИЕ ВОПРОСЫ |