форум вебмастероff на AlfaSpace.NET |
Ubuntu и Linux
|реактивный бесплатный хостинг
| Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга
|
правила форума
| Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ ° |
| Форум вебмастеров на AlfaSpace.NET / CMS и Форумы / Как отрегулировать ЧПУ (russkie imena stranic - translitom) |
| Автор | Сообщение |
| andrei_a Участник 5 |
# Дата: 15 Авг 2006 05:14 Насколько я понял из изучения материалов в разных форумах, Человеко-Понятные URL создаются в файле .htaccess через MOD_REWRITE Как сделать (где и что вписать), чтобы URL имели такой вид: 1) Страницы имеют расширение .html 2) Russkie imena stranic otobrazhajutsja translitom (volapukom, krakozyabroy), то есть в виде http://www.chtoto.ru/articles/psihologia/test_lushera.html вместо http://www.chtoto.ru/articles.php?group_id=психология&article_id=тест_люшера 3) Имена страниц формируются из названия темы, введенной при заполнении формы сообщения. |
| digs Участник 364 |
# Дата: 15 Авг 2006 06:24 Можно просто написать RewriteEngine On RewriteCond %{REQUEST_FILENAME} -f RewriteRule ^(.+) - [PT,L] RewriteRule ^(.*) index.php А потом уже в самом скрипте (index.php) взять переменную $_SERVER["REQUEST_URI"] и разобрать ее, заодно сделав нужные преобразования |
| andrei_a Участник 5 |
# Дата: 16 Авг 2006 10:18 » digs digs
А потом уже в самом скрипте (index.php) взять переменную $_SERVER["REQUEST_URI"] и разобрать ее, заодно сделав нужные преобразования В нем нет такой переменной. Там есть: $_SERVER['SERVER_PORT'] $_SERVER['HTTP_HOST'] $_SERVER['PHP_SELF'] $_SERVER['REMOTE_ADDR'] $_SERVER['HTTP_REFERER'] |
| persei Участник 482 |
# Дата: 16 Авг 2006 10:45 andrei_a если в $_SERVER нет request_uri то я не я он есть даже при safe mode |
| smallcms Участник 2752 |
# Дата: 16 Авг 2006 11:00 persei его действительно нет, если ты не перешёл с главной, например, а просто делал direct request :) |
| persei Участник 482 |
# Дата: 16 Авг 2006 11:08 smallcms при пустом реферере она есть. а вот при пустом реквесте ее нет. хотя на некоторых серверах она есть но в null |
| digs Участник 364 |
# Дата: 16 Авг 2006 12:12 andrei_a Значит задаешь какую нибудь страшную адресную строку, запускаешь этой строкой скрипт (index.php через mod_rewrite) в котором есть команда phpinfo() и в полученной инфе ищешь эту строку. Как найдешь, смотри в какой переменной она лежит. Переменных может быть несколько |
| smallcms Участник 2752 |
# Дата: 16 Авг 2006 12:23 вообще решается директивами RewriteEngine On RewriteBase / RewriteRule ^([-_A-Za-z0-9]+)\/([-_A-Za-z0-9]+)\/([-_A-Za-z0-9]+)\.html$ ./$1.php?group_id=$2&article_id=$3 RewriteRule ^([-_A-Za-z0-9]+)\/([-_A-Za-z0-9]+)\.html$ ./$1.php?group_id=$2 RewriteRule ^([-_A-Za-z0-9]+)\.html$ ./$1.php (к примеру) по транслиту имхо опасная вещь. вдруг я кодировку другую принудительно укажу? :))) хотя сделать можно. но как сказали, это делается в самом движке, а не в .htaccess |
| andrei_a Участник 5 |
# Дата: 18 Авг 2006 08:44 ° Поправил: andrei_a » persei persei
Участник 206 # Дата: 16 Авг 2006 08:45 Цитата andrei_a если в $_SERVER нет request_uri то я не я он есть даже при safe mode Вот файл index.php (это - Koobi): ++++++ <?php $_REQUEST = (isset($_REQUEST)) ? $_REQUEST : ""; if(isset($_REQUEST['area']) && !is_numeric($_REQUEST['area'])) { ob_start(); header("Location:index.php?area=1"); exit; } define("BASEDIR", dirname(__FILE__)); include(BASEDIR . "/inc/config.php"); include(BASEDIR . "/functions/Func.Session.php"); ob_start(); session_start(); session_name('koobi'); require(BASEDIR . "/inc/init.php"); //================================================================= // Verschlьsselung aktiv? //================================================================= if(defined("SSLMODE") && SSLMODE==1 && $_SERVER['SERVER_PORT']=='80') header("Location:".redir().""); if(defined("SSLMODE") && SSLMODE!=1 && $_SERVER['SERVER_PORT']=='443') header("Location:".redir().""); //================================================================= // Url der Seite fьr weitere Aktionen festlegen //================================================================= define("HPURL", HTTPSSL . $_SERVER['HTTP_HOST'] . str_replace("/index.php", "", $_SERVER['PHP_SELF']) . "/"); //================================================================= // Wenn kein Shop vorhanden ist, weiterleiten, wenn angefordert //================================================================= if(isset($_REQUEST['p']) && $_REQUEST['p']=='shop' && ISSHOP != 1) header("Location:index.php"); if(isset($_REQUEST['p']) && $_REQUEST['p']=='register') header("Location:index.php?p=signup"); $expire = time() + (60 * 10); $sql = $db->Query("DELETE FROM " . PREFIX . "_useronline WHERE expire <= '" . time() . "'"); $sql = $db->Query("SELECT ip FROM " . PREFIX . "_useronline WHERE ip='" . $_SERVER['REMOTE_ADDR'] . "' limit 1"); $num = $sql->numrows(); if ($num < 1) $sql = $db->Query("INSERT INTO " . PREFIX . "_useronline (ip,expire,uname,invisible) VALUES ('" . $_SERVER['REMOTE_ADDR'] . "','$expire','" . (defined("UNAME") ? UNAME : "UNAME") . "','" . (defined("INVISIBLE") ? INVISIBLE : "INVISIBLE") . "')"); else $sql = $db->Query("UPDATE " . PREFIX . "_useronline set uname='" . (defined("UNAME") ? UNAME : "UNAME") . "' WHERE ip='" . $_SERVER['REMOTE_ADDR'] . "'"); if (!isset($_REQUEST['p'])) { $_REQUEST['p'] = "index"; $loader = "?"; } $buffer = str_replace(array(":", "/", "..", ".", ";", "\\", "http", "ftp"), "", $_REQUEST['p']); $sql = $db->Query("SELECT area_template,active FROM " . PREFIX . "_areas WHERE area_id='".(int)$area."'"); $row = $sql->fetchrow(); //================================================================= // Wenn Sektion nicht aktiv ist und ein Passwort gesetzt wurde, // wird hier nun ьberprьft, ob das Passwort gьltig ist. Wenn ja, // hat der Besucher Zugriff //================================================================= if ($row->active != 1) { if (!($HTTP_SESSION_VARS['secpass' . $area])) { $HTTP_SESSION_VARS['secpass' . $area] = $_GET['pass']; } $sql = $db->Query("SELECT pass,tmpl FROM " . PREFIX . "_areas WHERE area_id='".(int)$area."'"); $row = $sql->fetchrow(); if (($row->pass == "") || ($row->pass != $HTTP_SESSION_VARS['secpass' . $area])) { $HTTP_SESSION_VARS['secpass' . $area] = ""; echo $row->tmpl; exit(); } } $tmpl = new Koobi("templates/$THEME/"); $tmpl->assign('theme', $THEME); $tmpl->assign('pref', $pref); @include('inc/globals.php'); if(ISSHOP==1) { if(!@include( BASEDIR . "/system/shop/shopinc.php")) echo '<div><strong>Fehler:</strong> Shop konnte nicht initialisiert werden.</div>'; } if (!@include("system/$buffer.php")) { $EOUT = msg("error_once", "modulenotfound", str_replace("__URL__", "index.php", $lang['redirect']), "index.php"); $NOOUT = 1; } //================================================================= // HIER WERDEN DIE EINZELNEN BEREICHE DEM JEWEILIGEN // TEMPLATE ZUGEWIESEN (ADMIN->Container (Seite)) //================================================================= switch ($_REQUEST['p']) { case "pic" : case "gallerypic" : $template = fetchmaintemplate("27"); break; case "misc" : $template = fetchmaintemplate("13"); break; case "shopimage" : $template = fetchmaintemplate("55"); break; case "userlist" : $template = fetchmaintemplate("14"); break; case "manufacturer" : $template = fetchmaintemplate("22"); break; case "tell" : $template = fetchmaintemplate("23"); break; case "static" : $template = fetchmaintemplate("24"); break; case "poll" : $template = fetchmaintemplate("25"); break; case "faq" : $template = fetchmaintemplate("26"); break; case "gallery" : $template = fetchmaintemplate("27"); break; case "register" : $template = fetchmaintemplate("28"); break; case "pwlost" : $template = fetchmaintemplate("29"); break; case "ignorelist" : $template = fetchmaintemplate("30"); break; case "changedetails" : $template = fetchmaintemplate("31"); break; case "changepw" : $template = fetchmaintemplate("32"); break; case "pn" : $template = fetchmaintemplate("33"); break; case "news" : $template = fetchmaintemplate("34"); break; case "index" : $template = fetchmaintemplate("12"); break; case "product": $template = fetchmaintemplate("36");break; case "downloads": $template = fetchmaintemplate("40");break; case "links": $template = fetchmaintemplate("43");break; case "downloadfile": $template = fetchmaintemplate("42");break; case "contact" : $template = fetchmaintemplate("45"); break; case "articles" : $template = fetchmaintemplate("38"); break; case "guestbook" : $template = fetchmaintemplate("47"); break; case "calendar" : $template = fetchmaintemplate("50"); break; case "shop" : $template = fetchmaintemplate("52"); break; case "showforums" : case "showforum" : case "showtopic" : case "newpost" : case "addpost" : case "move" : case "deltopic" : case "newcategory" : case "newforum" : case "forum"; case "newtopic" : case "addpost" : case "addtopic" : $template = fetchmaintemplate("35"); break; default : $template = fetchmaintemplate("12"); } if (!$template) $template = fetchmaintemplate("12"); //================================================================= // KALENDER //================================================================= $d = getdate(time()); $year = (isset($_REQUEST['koobi_jahr']) && $_REQUEST['koobi_jahr'] != '') ? (int)$_REQUEST['koobi_jahr'] : $d['year']; $month = (isset($_REQUEST['koobi_monat']) && $_REQUEST['koobi_monat'] != '') ? (int)$_REQUEST['koobi_monat'] : $d['mon']; $cal = new KoobiCalendar; $tmpl->assign('simple_calendar', $cal->getMonthView($month, $year, 'calendar/calendar_small.tpl','1','small')); //================================================================= // SHOPNAVIGATION //================================================================= if(ISSHOP==1) { $categs = array(); get_shop_categs_simple(0, '', $categs, $area); $tmpl->assign('shopnavi', $categs); } //================================================================= // WENN USER NICHT ANGEMELDET IST, LO |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:37553, gzipped size:11092 |