#php #mysql #.htaccess #mod-rewrite
#php #mysql #.htaccess #мод-переписать
Вопрос:
Использование mod_rewrite для использования $ _GET [‘variable’] для захвата информации / страниц достаточно просто. Как вы даете пользователю возможность сделать это. Например: Там URL есть blah.com/user?id=74378 по умолчанию. Теперь они могут вручную создать там собственный URL, если таковой имеется. Как это делается? Спасибо
Ответ №1:
Вы могли бы поддерживать таблицу со списком используемых URL-адресов. Это делается для проверки и предупреждения пользователя, если URL недоступен. Затем, если пользователь попытается, blah.com/user/myspecialurl
должен быть вызван htaccess blah.com/user?url=myspecialurl
. Затем используйте таблицу, чтобы найти идентификатор пользователя и получить содержимое, используя переменную GET.
Все это при условии, что у вас есть фиксированный формат / ограничения для URL
Комментарии:
1. Правильно, достаточно просто. Итак, наряду с таблицей «if_available_url» я мог бы добавить столбец URL в таблицу «users», по умолчанию пустой, а затем ОБНОВИТЬ его, если пользователь укажет URL. В PHP-скрипте я могу создать if / else для того, запрашивать ли новый URL-адрес, если он установлен. В противном случае по умолчанию было бы установлено значение if user_id.
2. Как и в любом проекте, вам нужно быть осторожным со схемой вашей базы данных. В зависимости от того, какие сведения вам понадобятся из таблицы user или таблицы url, вы можете напрямую использовать
user
таблицу или добавитьuserid
поле вif_url_available
таблицу. В любом случае, схема — это то, что будет очень специфично для ваших нужд.
Ответ №2:
Поможет первая часть, anything, на этой странице, где anything = определяемая пользователем строка, и вы обрабатываете эту строку как переменную GET на фиксированной странице.
Ответ №3:
используйте модуль php mod_rewrite и правила в htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
и в index.php:
$page = isset($_GET['page']) ? $_GET['page'] : 'index';
// filter var $page
// ..
// then include needed page
include './pages/'.$page;
// or get content from sql
sql(..WHERE page = $page..)