applepeace

Members
  • Content count

    61
  • Joined

  • Last visited

About applepeace

  • Rank
    Местный

Profile Information

  • Специализация
    Вебмастер
  • Профиль ID
    applepeace
  1. Вот нашёл такой способ: class Router { private $_route = array(); //Переменная хранит маршруты, и файлы, которые будут открываться при определеном маршруте /** * Метод для установки маршрута, и файла который будет открываться при заданом маршруте * @param <string> $dir - маршрут * @param <string> $file - адрес файла */ public function setRoute($dir, $file) { $this->_route[trim($dir, "/")] = $file; } /** * Метод смотрит текущий адрес, и сверяет его с установленными маршрутами, * если для открытого адреса установлен маршрут, то открываем страницу * @return <boolean> */ public function route() { if (!isset($_SERVER["PATH_INFO"])) { //Если открыта главная страница include_once "/template/main.php"; //Открываем файл главной страницы } elseif (isset($this->_route[trim($_SERVER["PATH_INFO"], "/")])) { //Если маршрут задан include_once $this->_route[trim($_SERVER["PATH_INFO"], "/")]; //Открываем файл, для которого установлен маршрут } else return false; //Если маршрут не задан return true; } } $route = new Router; $route->setRoute("/admin/", "/system/admin.php"); //Устанавливаем маршрут и файл который будет открываться при этом маршруте $route->setRoute("/lk/", "/system/lk.php"); Все маршруты перенаправляются в файл INDEX.PHP, где обрабатываются все URL-адреса. HTACCESS выглядит так: RewriteEngine on RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 Так можно добавлять много виртуальных адресов без завала HTACCESS
  2. То, что плохо нагружать htaccess - я не слышал. Но 50 строк в .htaccess меня почему-то напрягают (почему? не знаю, обычно в htaccess 5-10 строк должно быть ). Я прочитал о PHP-обработчике URLов и у него есть некоторые плюсы. В htaccess прописывается такая штука: <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?furl=$1 [L,QSA] </IfModule> Все адреса летят в index.php с GET-параметром. index.php обрабатывает этот URL и выплевывает страницу. К тому же легко так проверить 404 ошибку, как мне кажется. Если физического файла на сервере нет, выдает 404, если есть - выдаем файл. В это же время htaccess практически не загружен - всё будет решать и находить index.php. Мне кажется, куда эстетичней сделать через такой обработчик нежели Apache.
  3. Не хочу нагружать .htaccess таким способом. А если у меня таких адресов около 50, т.е. различных по типу? К примеру, посты я могу выводить одним обработчиком "post.php?параметр=значение...", а вот для всех остальных шаблонов прописывать в каком-нибудь PHP-обработчике?
  4. Добрый вечер! Столкнулся с проблемой обработки URL-адресов и не понимаю чего бы придумать. Суть проблемы: Есть адрес вида: site.ru/includes/administrator/admin.php Как сделать, чтобы при вводе такого URL: site.ru/admin/ Открывался файл admin.php, т.е. укоротить URL. И да - таких адресов будет около 50. Куда их помещать (БД/Файл) и как обрабатывать такие запросы?
  5. Если у тебя канонические урлы, то это хорошо. Тогда ничего дублироваться не будет
  6. Так тебе же нужно вывести URL на полную новость тогда, когда ты находишься НЕ в выдаче по поиску (например на главной). Юзай такую штуку <?php get_permalink(); ?> Выводит постоянный URL на пост. В скобках в параметре ID, если в цикле прогоняешь, то ID можно не писать.
  7. Есть вариант прогнать по профилям тематики "мобильные устройства, смартфоны, Apple, iOS, твики Cydia"?
  8. Привет всем! Возникла проблема - не знаю что с этим делать: подключил Google Page Speed Insights API на сервер. В настройках Google.Developers подключил API-key для сервера. Когда вызываю функцию получения JSON-файла, мне выдает вот это: Функцию вызываю в PHP с помощью CURL: $url = 'https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=' . $domain . '&strategy=' . $type . '&filter_third_party_resources=false&locale=ru&key=DANSSyDdDqvkM_dGfzxlrcq2swqsfbge5iq8'; $pt = curl_init($url); $result = curl_exec($pt); echo $result; curl_close($pt); Не понимаю что с этим делать. Пишет, что запрещен доступ по этому IP сервера, хотя указан он верно в настройках Google.Developers.Console. Кто-нибудь знает что с этим делать? 2 часа уже сижу
  9. Потрясающий дизайн
  10. Если графический редактор, качай Adobe PS, или Paint.NET - куда легче и проще, чем PS.
  11. //ФАЙЛ functions.php //ПРОВЕРКА СУЩЕСТВОВАНИЯ САЙТА function site_exists($domain) { //ПРОВЕРЯЕМ - ОТВЕЧАЕТ ЛИ САЙТ НА ЗАПРОС, ЕСЛИ ОТВЕЧАЕТ - САЙТ СУЩЕСТВУЕТ if (!get_headers(convert_url($domain), 1)) {return false;} else {return true;} } //КОНВЕРТАЦИЯ АДРЕСА URL (1 - КОРОТКИЙ, 2 - ПОЛНЫЙ) function convert_url($domain,$type = 2) { //ИЩЕМ В ВВОДИМОМ АДРЕСЕ https: или http:, если не находим, то приписываем http: к короткому адресу (как бы подразумевая, что пользователь имел ввиду http: вводя короткий адрес) if ( (strpos($domain,'https://')) === FALSE ){ if ( (strpos($domain,'http://')) === FALSE ) { $full = 'http://' . $domain; $short = $domain; } else { $full = $domain; $short = str_replace('http://','',$domain); } } else { $full = $domain; $short = str_replace('https://','',$domain); } //ПЕРЕКЛЮЧАТЕЛЬ ФУНКЦИИ 1 - КОРОТКИЙ URL (БЕЗ HTTP), 2 - ПОЛНЫЙ (С HTTP) //ЗНАЧЕНИЕ БЕРЕТСЯ ИЗ ПАРАМЕТРА ФУНКЦИИ switch ($type) { case 1: return $short; //ВЕРНУЛИ КОРОТКИЙ УРЛ ЕСЛИ 1 break; case 2: return $full; //ВЕРНУЛИ ПОЛНЫЙ УРЛ ЕСЛИ 2 break; } } <!--- HTML !---> <form action="check.php" method="POST"> <input type="text" name="domain"> <input type="submit" value="проверить"> </form> //ФАЙЛ check.php <?php include "functions.php"; //подключаем функцию проверки if (isset($_POST['domain'])) { //проверяем, ввёл ли пользователь данные в форму if (site_exists($_POST['domain'])) {echo 'Сайт существует';} //проверяем ответ функции site_exists() из functions.php и выводим ответ else {echo 'Сайта не существует';} else { echo 'Заполните поле ввода сайта'; } //если проверка не прошла успешно (пустое поле для ввода) ?> Прокомментировал, как и просили
  12. Да бросьте Я начинающий
  13. Прям-таки очень похож код на мой
  14. //ПРОВЕРКА СУЩЕСТВОВАНИЯ САЙТА function site_exists($domain) { if (!get_headers(convert_url($domain), 1)) {return false;} else {return true;} } //КОНВЕРТАЦИЯ АДРЕСА URL (1 - КОРОТКИЙ, 2 - ПОЛНЫЙ) function convert_url($domain,$type = 2) { if ( (strpos($domain,'https://')) === FALSE ){ if ( (strpos($domain,'http://')) === FALSE ) { $full = 'http://' . $domain; $short = $domain; } else { $full = $domain; $short = str_replace('http://','',$domain); } } else { $full = $domain; $short = str_replace('https://','',$domain); } switch ($type) { case 1: return $short; break; case 2: return $full; break; } } Держите) Вторая функция convert_url необязательная. Она проверяет ввод URL-адреса и конвертирует его, добавляя HTTP:// в случае надобности (по умолчанию 2 = полный адрес). Когда вызываю функцию, делаю так (чтобы не выводилась ошибка в случае несуществования сайта). @site_exists($_POST['domain']) OR die('Такого сайта не существует'); Спасибо Твистер за совет