Intereting Posts
Вызов функции php в отдельном файле с использованием AJAX Rscript не работает при вызове на PHP, но из командной строки Использование do_shortcode в wordpress через вызов ajax Установить файл cookie после отправки в браузер Как отображать / запрашивать объект JSON с помощью Android Volley? «Срок действия страницы истек из-за бездействия» – Laravel 5.5 ищет transpiler: php to javascript Является ли добавление PHP уязвимым для SQL-инъекции? Рекурсивная функция PHP SimpleXML для перечисления дочерних элементов и атрибутов Использование переменных PHP на нескольких страницах zend Framework не работает после того, как файлы загружаются на удаленный сервер PDOException «не удалось найти драйвер» в php Как получить пользовательскую информацию пользователя, прошедшего проверку подлинности с помощью mod_ldap Apache? Сортировка многомерных массивов по значению ключа подкадра Переменная Javascript внутри переменной php

URL-адрес динамической страницы динамической страницы PHP

Как я могу сделать www.mydomain.com/folder/?id=123 —> www.mydomain.com/folder/xCkLbgGge

Я хочу, чтобы моя страница запроса БД получила свой собственный URL-адрес, например, я видел на твиттере и т. Д.

Это известно как «slug» wordpress, сделавший этот термин популярным. В любом случае.

В конечном итоге вам нужно иметь файл .htaccess, который захватывает весь ваш входящий трафик, а затем реорганизовывает его на уровне сервера, чтобы работать с вашим PHP в том смысле, что вы по-прежнему сохраняете логику id = 123, но для клиента side '/ folder / FHJKD /' будет отображаемым результатом.

вот пример файла .htaccess, я использую аналогичную логику на … (так же как и WordPress).

RewriteEngine On #strips the www out of the domain if there RewriteCond %{HTTP_HOST} ^www\.domain\.com$ #applies logic that changes the domain from http://mydomain.com/post/my-article #to resemble http://mydomain.com/?id=post/my-article RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?id=$1 [QSA,L] 

что это будет делать, это взять все после domain.com/ и передать его как переменную в index.php. В этом примере переменная будет «id», из которой вы должны установить логику, которая наилучшим образом соответствует потребностям ваших сайтов.

пример

 <?php //the URL for the example here: http://mydomain.com/?id=post/my-article if($_GET['id']) { $myParams = explode('/', $_GET['id']); echo '<pre>'; print_r($myParams); echo '</pre>'; } ?> 

теперь логика для этого должна пройти гораздо глубже, это всего лишь чистый пример на базовом уровне, но в целом и, в первую очередь, за то, что вы работаете с базой данных, я предполагаю, что вы захотите убедиться, что $ myParams чист от вредоносного кода, что может вводить в ваш PHP или базу данных.

Выходом выше $myParams через print_r() будет:

 Array( [0] => post [1] => my-article ) 

Чтобы работать с ним, вам нужно будет по крайней мере

 echo $myParams[0].'<br />'; 

или вы можете сделать это, так как большинство браузеров добавят окончательный /

 <?php //the URL for the example here: http://mydomain.com/?id=post/my-article if($_GET['id']) { //breaks the variable apart, removes any empty array values and reorders the index $myParams = array_values(array_filter(explode('/', $_GET['id']))); if(count($myParams > 1) { $sql = "SELECT * FROM post_table WHERE slug = '".mysql_real_escape_string($myParams[1])."'"; $result = mysql_query($sql); } } ?> 

Теперь этот признак – очень грубый пример, вы хотели бы использовать некоторую логику там, чтобы предотвратить инъекцию mysql, а затем вы примените запрос, как вы бы хотели, чтобы вы сейчас вытягивали свои статьи, используя только id = 123.

В качестве альтернативы вы также можете пойти совершенно другим путем и изучить чудеса MVC (Model View Control). Что-то вроде CodeIgniter – это легкая среда MVC для начала работы. Но это зависит от вас.

Это может быть достигнуто с помощью mod_rewrite например, через файл .htaccess .

В вашем .htacess вам нужно добавить RewriteEngine.

После этого вам нужно будет сделать несколько регулярных выражений, чтобы заставить этого маленького зверя работать. Я предполагаю? Id is folder.php? Id = 123.

Например, папка: RewriteRule ^ folder / ([a-zA-Z0-9 _-] +) / ([0-9] +). Html $ folder.php? Id = $ 123