Търся: PHP Програмист за създаване на SEO връзки чрез MySQL, htaccess и PHP

Buscape

Active Member
Рейтинг - 100%
2   0   0
Здравейте,

имам таблица от сорта на:

Id, URL, Title, Content
1, dir1/file1.php, Тест, Lorem Ipsum
2, dir2/subdir2/file2.php,Тест 2, Lorem Ipsum


Искам чрез htaccess и PHP да създам страници:

http://example.com/dir1/file1.php
http://example.com/dir2/subdir2/file2.php


Edit: Търся някой да го направи срещу заплащане, а не търся съвети или онлайн уроци!
 
Последно редактирано:
Дай един дъмп на базата с няколко примера и ще ти го направим.
 
Аз тепърва я мисля точно как да я структурирам. Така че ми стига с тези четири колони пък после ще си го преправям сам, ако се наложи.
 
Здравей, мога да ти помогна.
Все пак ако ти трябва начална насока, ето ти за таблицата и просто проверяваш при заявка.

Правиш една таблица url_alis

CREATE TABLE `url_alias` (
`url_alias_id` int(11) NOT NULL,
`query` varchar(255) NOT NULL,
`keyword` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


INSERT INTO `url_alias` (`url_alias_id`, `query`, `keyword`) VALUES
(3152, 'information_id=1', 'За-нас'),

Вече при заявка си правиш проверка и тя трябва да е добра иначе ще яде много CPU.
Поздрави.
 
Нека това да е таблицата:

Код:
CREATE TABLE IF NOT EXISTS `seotest` (
  `id` varchar(10) NOT NULL,
  `url` varchar(250) NOT NULL,
  `title` varchar(250) NOT NULL,
  `content` varchar(250) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `seotest` (`id`, `url`, `title`, `content`) VALUES
('1', 'dir1/file1.php', 'Тест', 'Lorem Ipsum'),
('2', 'dir2/subdir2/file2.php', 'Тест 2', 'Lorem Ipsum');
 
Здравей, мога да ти помогна.
Все пак ако ти трябва начална насока, ето ти за таблицата и просто проверяваш при заявка.

Правиш една таблица url_alis

CREATE TABLE `url_alias` (
`url_alias_id` int(11) NOT NULL,
`query` varchar(255) NOT NULL,
`keyword` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


INSERT INTO `url_alias` (`url_alias_id`, `query`, `keyword`) VALUES
(3152, 'information_id=1', 'За-нас'),

Вече при заявка си правиш проверка и тя трябва да е добра иначе ще яде много CPU.
Поздрави.
Това не е ли варант без .htaccess? Няма ли да е по-щадящо, ако е с .htaccess?
 
А всъщност идеята ти каква е ?

1. Искаш да направиш рутер на цялата система, който да е вписан в БД ?
2. Искаш да имаш единични страници, които са само текстови и искаш да могат да се достъпват динамично ?

Ако е №1, помисли за вариант да го направиш чрез файл тип json или обикновен масив. Така вместо да добавяш всяка една страница от сайта ти като ред в БД, ще направиш wildcard в рутера и ще имаш динамични страници.
Например:
website.com/store/product/:id
Така всички адреси, които са /store/product/5, /store/product/6 и т.н. ще се насочват към този рутер, а :id ще е параметърът по който ще търсиш в БД.
"store" ще ти зареди контролера, а "product" метода, ":id" остава да е параметъра.

Разбира се това е примерна схема, можеш да я завъртиш според нуждите си. Идеята е да не се вписва всяка страница в БД.
 
Здравей, @Buscape , мога да ти дам решение и за .htaccess но това е за малка система, за по-големи и дори за малки винаги ползвай база данни, ще ти обесня и защо.

Ако ползваш .htaccess метод ще имат проблеми при SSL и бавнотата защото тука идва на ниво филтриране а не сървър(https://httpd.apache.org/docs/2.4/images/rewrite_process_uri.png), другото което е че при по-голяма система ще искаш да генерираш автоматично примерно всички адреси или да ги промениш еми чрез .htaccess ще имаш големи главоболия, преди време и аз мислех само чрез .htaccess , трябва да ти кажа че това беше най-голямата ми грешка :), проекта стана голям и един ден трябваше да променя адресите и да вкарам модули и просто всичко се скапа и се вкарах в големи приключения, чрез база данни ще имаш вариант да редактираш и да модифицираш.

Послушай ме, ще си създадеш доста проблеми ако караш чрез .htaccess ако е само за постове на дадена система може, но ако това ще е нещо голямо или ще става голямо.... хубаво е да се мисли за напред.

Ето пример за твоят случая:

// тип 1
www.website.bg/index.php/dir1/file1 //тип url за клиента

^dir1/([^/]*) index.php/dir1/$1 [L] //в htaccess за теб


//тип 2
www.website.bg/index.php?page=dir1&file1=file1

^dir1/([^/]*) /index.php?page=dir1&file1=$1 [L] //htaccess


Тези методи който съм дал, работят доста стъбилно и са тествани при запитвания, но при редакция скапват SEO и няма как постепенно да редактираш, което е много важно ако държиш на SEO оптимизацията на даден проект.

Поздрави.
 
Здравей, @Buscape , мога да ти дам решение и за .htaccess но това е за малка система, за по-големи и дори за малки винаги ползвай база данни, ще ти обесня и защо.

Ако ползваш .htaccess метод ще имат проблеми при SSL и бавнотата защото тука идва на ниво филтриране а не сървър(https://httpd.apache.org/docs/2.4/images/rewrite_process_uri.png), другото което е че при по-голяма система ще искаш да генерираш автоматично примерно всички адреси или да ги промениш еми чрез .htaccess ще имаш големи главоболия, преди време и аз мислех само чрез .htaccess , трябва да ти кажа че това беше най-голямата ми грешка :), проекта стана голям и един ден трябваше да променя адресите и да вкарам модули и просто всичко се скапа и се вкарах в големи приключения, чрез база данни ще имаш вариант да редактираш и да модифицираш.

Послушай ме, ще си създадеш доста проблеми ако караш чрез .htaccess ако е само за постове на дадена система може, но ако това ще е нещо голямо или ще става голямо.... хубаво е да се мисли за напред.

Ето пример за твоят случая:

// тип 1
www.website.bg/index.php/dir1/file1 //тип url за клиента

^dir1/([^/]*) index.php/dir1/$1 [L] //в htaccess за теб


//тип 2
www.website.bg/index.php?page=dir1&file1=file1

^dir1/([^/]*) /index.php?page=dir1&file1=$1 [L] //htaccess


Тези методи който съм дал, работят доста стъбилно и са тествани при запитвания, но при редакция скапват SEO и няма как постепенно да редактираш, което е много важно ако държиш на SEO оптимизацията на даден проект.

Поздрави.
Ти ли беше онзи с десетте години опит като програмист или се бъркам ?

Какъв е проблема да направи 301 редирект през .htaccess към новия адрес. Можеш да добавяш и динамични адреси също ( аргументи ).

И аз съм писал много големи системи и такова нещо, като адреси в БД не съм виждал някога.
 
Ти ли беше онзи с десетте години опит като програмист или се бъркам ?

Какъв е проблема да направи 301 редирект през .htaccess към новия адрес. Можеш да добавяш и динамични адреси също ( аргументи ).

И аз съм писал много големи системи и такова нещо, като адреси в БД не съм виждал някога.
15!
типичния "опенкарт гуру" дето не може да напише 2 реда РНР.


Били пояснил какво имаш предвид?
Още чакам отговор
 
Здравей, @Buscape , мога да ти дам решение и за .htaccess но това е за малка система, за по-големи и дори за малки винаги ползвай база данни, ще ти обесня и защо.

Ако ползваш .htaccess метод ще имат проблеми при SSL и бавнотата защото тука идва на ниво филтриране а не сървър(https://httpd.apache.org/docs/2.4/images/rewrite_process_uri.png), другото което е че при по-голяма система ще искаш да генерираш автоматично примерно всички адреси или да ги промениш еми чрез .htaccess ще имаш големи главоболия, преди време и аз мислех само чрез .htaccess , трябва да ти кажа че това беше най-голямата ми грешка :), проекта стана голям и един ден трябваше да променя адресите и да вкарам модули и просто всичко се скапа и се вкарах в големи приключения, чрез база данни ще имаш вариант да редактираш и да модифицираш.

Послушай ме, ще си създадеш доста проблеми ако караш чрез .htaccess ако е само за постове на дадена система може, но ако това ще е нещо голямо или ще става голямо.... хубаво е да се мисли за напред.

Ето пример за твоят случая:

// тип 1
www.website.bg/index.php/dir1/file1 //тип url за клиента

^dir1/([^/]*) index.php/dir1/$1 [L] //в htaccess за теб


//тип 2
www.website.bg/index.php?page=dir1&file1=file1

^dir1/([^/]*) /index.php?page=dir1&file1=$1 [L] //htaccess


Тези методи който съм дал, работят доста стъбилно и са тествани при запитвания, но при редакция скапват SEO и няма как постепенно да редактираш, което е много важно ако държиш на SEO оптимизацията на даден проект.

Поздрави.
Ko raboti e men, виж че си хардкорил първия параметър...
 
PHP:
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /kor.php?var1=$1&var2=$2 [L]

http://kor.bg/kor.php?var1=kor1&var2=kor2
става
http://kor.bg/kor1/kor2

ко стам та разбрал правилно


Код:
CREATE TABLE IF NOT EXISTS `seotest` (
  `id` varchar(10) NOT NULL,
  `url` varchar(250) NOT NULL,
  `title` varchar(250) NOT NULL,
  `content` varchar(250) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `seotest` (`id`, `url`, `title`, `content`) VALUES
('1', 'dir1/file1.php', 'Тест', 'Lorem Ipsum'),
('2', 'dir2/subdir2/file2.php', 'Тест 2', 'Lorem Ipsum');

Бих искал да бъде нещо като това:
example.com/index.php?id=1 => example.com/dir1/file1.php <title>Тест</title> <body>Lorem Ipsum</body>
example.com/index.php?id=2 => example.com/dir2/subdir2/file2.php <title>Тест 2</title> <body>Lorem Ipsum</body>
 
А всъщност идеята ти каква е ?

1. Искаш да направиш рутер на цялата система, който да е вписан в БД ?
2. Искаш да имаш единични страници, които са само текстови и искаш да могат да се достъпват динамично ?

Ако е №1, помисли за вариант да го направиш чрез файл тип json или обикновен масив. Така вместо да добавяш всяка една страница от сайта ти като ред в БД, ще направиш wildcard в рутера и ще имаш динамични страници.
Например:
website.com/store/product/:id
Така всички адреси, които са /store/product/5, /store/product/6 и т.н. ще се насочват към този рутер, а :id ще е параметърът по който ще търсиш в БД.
"store" ще ти зареди контролера, а "product" метода, ":id" остава да е параметъра.

Разбира се това е примерна схема, можеш да я завъртиш според нуждите си. Идеята е да не се вписва всяка страница в БД.
Извинявам се, но не съм толкова добър в терминологията и не разбрах всичко.

Казано по-просто искам това да се случи:

Ако имам база данни
Код:
INSERT INTO `seotest` (`id`, `url`, `title`, `content`) VALUES
('1', 'dir1/file1.php', 'Тест', 'Lorem Ipsum'),
('2', 'dir2/subdir2/file2.php', 'Тест 2', 'Lorem Ipsum');

Имам нужда от index.php файл и .htaccess файл (ако има нужда), които да създадат тези страници:

example.com/index.php?id=1 => example.com/dir1/file1.php <title>Тест</title> <body>Lorem Ipsum</body>
example.com/index.php?id=2 => example.com/dir2/subdir2/file2.php <title>Тест 2</title> <body>Lorem Ipsum</body>
 
Последно редактирано:
С тея ментални гимнастики далече няма да го докараш. Прегледай какво е MVC и специално какво е Restful ( REST ). С 1 изречение: url.com/resource/item/ , Ресурса ти е контролера, item-a ти е single item. Едва ли тук някой може да си представи цялата тая работа за какво ти е всъщност
 
  • Haha
Реакции: mid
С тея ментални гимнастики далече няма да го докараш. Прегледай какво е MVC и специално какво е Restful ( REST ). С 1 изречение: url.com/resource/item/ , Ресурса ти е контролера, item-a ти е single item. Едва ли тук някой може да си представи цялата тая работа за какво ти е всъщност
Ей научи едно нещо и го повтаряш и тва е :D
 
Извинявам се, но не съм толкова добър в терминологията и не разбрах всичко.

Казано по-просто искам това да се случи:

Ако имам база данни
Код:
INSERT INTO `seotest` (`id`, `url`, `title`, `content`) VALUES
('1', 'dir1/file1.php', 'Тест', 'Lorem Ipsum'),
('2', 'dir2/subdir2/file2.php', 'Тест 2', 'Lorem Ipsum');

Имам нужда от index.php файл и .htaccess файл (ако има нужда), които да създадат тези страници:

example.com/index.php?id=1 => example.com/dir1/file1.php <title>Тест</title> <body>Lorem Ipsum</body>
example.com/index.php?id=2 => example.com/dir2/subdir2/file2.php <title>Тест 2</title> <body>Lorem Ipsum</body>
Успях да намеря тези 2 урока:
https://medium.com/the-andela-way/h...erver-side-routing-system-in-php-e52e613cf241
https://steampixel.de/en/simple-and-elegant-url-routing-with-php/

Но проблемът е че и двата използват класове, а ти пишеш още процедурно и няма да ги разбереш. Но за по-читави ме мързи да търся, няма да те лъжа.
Потърси в гугъл какво е routing и малко по малко ще разбереш концепцията. С най-прости думи:
Имаш index.php файл от който започва всичко. При отварянето му имаш някакъв адрес в адрес бара, който в началото е "/", при което зареждаш началната страница.
После в сайта кликаш на index.php/store/product/1 при което отново отваряш index.php файла, но този път адреса е различен. Разликата я хващаш чрез $_SERVER['REQUEST_URI'] - тук ще видиш, че при второто зареждане имаш нещо различно в адреса. При което зареждаш необходимата страница. Това може да стане чрез switch или да ги мачнеш чрез написани условия ( рутер ).
Разбиваш адреса на "/" ( чрез explode ) и си правиш правило - първата част на адреса ще ми е например функцията, която се изпълнява. Втората и следващите части ще са аргументи на тази функция.
Рутера ще насочи заявката към съответното място ( клас / файл ), който да я изпълни. Принципа на насочване си го дефинираш изцяло ти.

Няма проблем да не можеш да го разбереш, може да ти е още много рано за тази част.
 
Последно редактирано:
Успях да намеря тези 2 урока:
https://medium.com/the-andela-way/h...erver-side-routing-system-in-php-e52e613cf241
https://steampixel.de/en/simple-and-elegant-url-routing-with-php/

Но проблемът е че и двата използват класове, а ти пишеш още процедурно и няма да ги разбереш. Но за по-читави ме мързи да търся, няма да те лъжа.
Потърси в гугъл какво е routing и малко по малко ще разбереш концепцията. С най-прости думи:
Имаш index.php файл от който започва всичко. При отварянето му имаш някакъв адрес в адрес бара, който в началото е "/", при което зареждаш началната страница.
После в сайта кликаш на index.php/store/product/1 при което отново отваряш index.php файла, но този път адреса е различен. Разликата я хващаш чрез $_SERVER['REQUEST_URI'] - тук ще видиш, че при второто зареждане имаш нещо различно в адреса. При което зареждаш необходимата страница. Това може да стане чрез switch или да ги мачнеш чрез написани условия ( рутер ).
Разбиваш адреса на "/" ( чрез explode ) и си правиш правило - първата част на адреса ще ми е например функцията, която се изпълнява. Втората и следващите части ще са аргументи на тази функция.
Рутера ще насочи заявката към съответното място ( клас / файл ), който да я изпълни. Принципа на насочване си го дефинираш изцяло ти.

Няма проблем да не можеш да го разбереш, може да ти е още много рано за тази част.

Или да инсталира един ларавел и да има и рутинги и адреси и контролери и модели, аутентикация, миграции и т.н...

За къстом неща може да погледне тук
https://www.youtube.com/playlist?list=PLjsqymUqgpST6BDlzkn7cztPXZYP-4kYD

и специално тук
 
Или да инсталира един ларавел и да има и рутинги и адреси и контролери и модели, аутентикация, миграции и т.н...

За къстом неща може да погледне тук
https://www.youtube.com/playlist?list=PLjsqymUqgpST6BDlzkn7cztPXZYP-4kYD

и специално тук
Моят начин на учене е да разбера как работят нещата, преди да скачам на готово нещо.
Ларавел е много як, но той е толкова зелен, че има още поне половин година, докато започне да усеща нуждата от OOP. А да го започне, без да може да си рутира 5 страници в системата ... какво ще прави когато му трябва нещо по-трудно ?
Трябва да си разчупи мозъка, за да започне да мисли по такъв начин, че да се справя сам с проблемите, да се запознае с това какво може езикът - да научи поне половината функции, защото в момента като не ги знае, и не разбира че може да има решение на проблемът му по много елегантен начин.

Все едно да отидеш в университет без средно образование.
 

Горе