Я действительно новичок в 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-изображения работают. Любые идеи для решения этих проблем?