Intereting Posts
get_instance () в Codeigniter: зачем назначать его переменной? Как сделать развертывание для приложения php Неинтерминированная ошибка ссылки на объект в PHP 5.3.X Почему $ (документ) уже не стреляет? отправить массив JavaScript через jQuery AJAX POST Можем ли мы использовать сеанс для создания глобальной переменной для всего клиента? Безопасная загрузка файла в PHP, запрет пользователя без разрешения Как работают сеансы PHP? (а не «как они используются?») Как подключить STDIN к PHP-порожденному процессу? Форма Symfony – доступ Entity внутри дочерней записи Тип в CollectionType Изображение как файл PHP Создайте обратную ссылку для внешнего издателя для ссылки на мой сайт Нужна помощь, эхо, отмеченные флажками, выбранные пользователем. Невозможно получить объект категории в некоторых шаблонах WooCommerce Как написать модульные тесты для интерактивного консольного приложения

mod_rewrite php mysql

Я действительно новичок в mod_rewrite, и я пытался понять это, но действительно застрял. Вот моя проблема.

У меня есть страница http://example.com/user/?s=81 ? S = 81 читает идентификатор пользователя в db.

Я бы хотел иметь ссылку
http://example.com/nookie

В базе данных у меня есть поле под названием whatuser, поэтому в строке 81 в этом поле у ​​меня есть пользователь nookie

Так что я хотел бы прочитать от databse, какой пользователь он находится в базе данных и создать легкий url из него. У меня также есть несколько страниц php внутри этой пользовательской папки, поэтому мне нужно иметь возможность ссылаться на них как

example.com/nookie/step1.php example.com/nookie/step2.php 

Надеюсь, ты получишь мою мысль. Cheerz! / Nookie

Насколько я знаю, вы не можете запрашивать базы данных с помощью mod_rewrite .

как насчет размещения PHP-скрипта /user/?s=81 , который ищет имя пользователя в db, а затем перемещает пользователя в $url = "/$username"; см. функцию заголовка PHP, передающую ему "Location: $url" .

Другая возможность (что я не слишком много думал :)) заключается в том, что вы добавляете дополнительное поле в базу данных, например user_home = / nookie /. Таким образом, сценарий входа в систему захватывает его при проверке данных учетной записи, а затем отправляет их на успешную проверку? Не требуется перезаписывать / выполнять дополнительные скрипты.

Вот что я хотел бы предложить: если ваше имя пользователя – только буквенно-цифровые символы, вы можете передать ник во все ваши Php-файлы после внутренней перезаписи в запросе GET .

Что-то вроде:

 RewriteRule /([a-zA-Z0-9]+)$ /user/?s=$1 [QSA,L] RewriteRule /([a-zA-Z0-9]+)/(.*)$ /$2?s=$1 [QSA,L] 

И тогда просто попросите классы «мать матери» в Php, которые проверяют значение «s» в строке запроса ( $_GET ), которая проверяет в базе данных, если пользователь существует. Если пользователь не существует, сделайте 404 в Php.

Я почти разобрал его и вот решение до сих пор: вот строка .htaccess

RewriteRule ^ ([a-z0-9 _-] +) $ user /? S = $ 1 [L, NC]

Затем в индексном файле у меня есть следующее: $ trafikskola_id = mysql_real_escape_string ($ _ GET ['s']);

$ vilken_trafikskola = mysql_query ("SELECT * FROM users, где slug = '$ trafikskola_id'") или exit (mysql_error ());

В базе данных у меня есть поле слияния и внутри, что в строке 81 добавлено nookie, и мой url выглядит как

http://mypage.com/nookie вместо http://mypage.com/user/?s=81 =))

Однако у меня есть проблема, что у меня нет ссылки http://mypage.com/nookie/, чтобы иметь forwardlash

И как бы не мои css-js-изображения работают. Любые идеи для решения этих проблем?