Работаю с ТС уже больше полу года на постоянной основе, рекомендовал многим своим коллегам, все остались довольны подходом к работе и качеством услуг, рекомендую как ответственного и адекватного специалиста.
Добавить в css:
@media all and (max-width:300px){.themonic-logo a { float: none;}}
Недавно сталкивался с проблемами при переезде на https.
Это добавил в htaccess:
RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.site\.com)(:80)? [NC] RewriteRule ^(.*) http://site.com/$1 [R=301,L] RewriteCond %{HTTPS} =off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Первый 2 строчки если нужен редирект с www на без www
Еще нужно добавить в php на всех страницах сайта следующее:
<?php function request_url() { $result = ''; // Пока результат пуст $default_port = 80; // Порт по-умолчанию if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']=='on')) { $result .= 'https://'; $default_port = 443; } else { $result .= 'http://'; } $result .= $_SERVER['SERVER_NAME']; if ($_SERVER['SERVER_PORT'] != $default_port) { // Если нет, то добавим порт в URL $result .= ':'.$_SERVER['SERVER_PORT']; } $result .= $_SERVER['REQUEST_URI']; return $result; } ?>
На звание профессионала в php я не претендую, во всяком случае пока только начал. Благодарю всех за помощь, тему можно закрывать.
Решил свою проблему таким образом:
Фал index.php
<? $dmp= explode("/", $_SERVER['REQUEST_URI']); // разбиваем с разделителем "/"$link = explode(".", $dmp[2]); // Разбиваю с разделителем "." что бы отделить "html", В переменную попадает только часть котрая отвечает за название страницы.?> <?php if(!$link[0]){ //если пустая переменная $link[0] - выводим вест список статей include "articles.php"; } elseif ($link[0]){ //если в переменной $link[0] что-то есть - выводим шаблон полной статьи include "article.php"; }?>
Файл article.php:
<?php include "adm/connect.php"; $sql = mysql_query("SELECT * FROM blog WHERE seo_link = '".$link[0]."'") or die(mysql_error()); // Выполняю азвпрос к базе где WHERE = переменной (в столбце "seo_link" хранится seo url ля каждой статьи) $newsData = array(); $result = mysql_fetch_array($sql, MYSQL_ASSOC);?><? if($link[0] == $result['seo_link']){ //Если данные в переменной $link[0] совпадают с данными из запроса - значит статья существует - выводим ее?><article> <p><?=$result['title'];?></p> <p><?=$result['keywords'];?></p> <p><?=$result['description'];?></p> <p><?=$result['seo_link'];?></p> <p><a href="<?=$result['seo_link'];?>.html"><?=$result['title_h1'];?></a></p> <p><?=$result['text'];?></p> <p><?=$result['date'];?></p> <p><?=$result['autor'];?></p> <p><?=$result['raiting'];?></p></article><?php } else { // Если в запросе не содержится данных - выводим 404 ошибку header($_SERVER['SERVER_PROTOCOL']." 404 Not Found"); header("Location: 404.html");} ?>
Всем большое спасибо за советы, я изначально не правильно понял принцип действия формирования ЧПУ
Там выводится только содержимое get запроса, это для теста.
Я кажется начал разбираться.
Удалил article.php и обрабатываю все в index.php
Создал условие на проверку get переменной, если она пуста - выводится список всех статей, если в ней есть параметры - вывожу статью с этим параметром.
Есть папка "blog"
В ней находится 2 файла:
- index.php содержащий:
- article.php содержащий:
Может кто-то на примере написать с комментарием?
Как сделать вместо такой ссылки - <a href="/blog/article.php?id=<?=$oneNews['seo_link'];?>.html"><?=$oneNews['title_h1'];?></a>
Такую - <a href="/blog/<?=$oneNews['seo_link'];?>.html"><?=$oneNews['title_h1'];?></a>
Благодарю за помощь но я все равно ничего из выше написанного не понял. Я только учу php и не могу понять то что Вы написали.
У меня в index.php выводится полный список всех статей, чего там мне подключается.
У меня нету фала "blog.php", есть только папка blog в которой находится index.php (в которой выводятся все публикации) и article.php (в которую я передаю id что бы используя его, вывести текст полной статьи)
Если бы я был силен в php а не первый раз пытался это сделать - я бы понял о чем Вы говорите. В данный момент по ссылке, которую Вы дали я не понял ничего.
У меня сейчас есть файл index.php, котрый при заходе на страницу /blog/ выдает список статей.
Ссылки формируются так - <a href="/blog/article.php?id=<?=$oneNews['seo_link'];?>"><?=$oneNews['title_h1'];?></a>
где:
article.php - страница вывода полной статьи
id - seo ссылка
В HTML все выглядит так - <a href="/blog/article.php?id=link_my.html">Заголовок</a>
Хочу сделать что бы часть article.php?id= не отображалась, но передавала get запрос, в итоге что бы:
Было так - /blog/article.php?id=link_my.html
Стало так - /blog/link_my.html
Это можно сделать в htaccess или я изначально не правильно создал структуру php файлов?