mod_rewrite php mysql - PullRequest
       5

mod_rewrite php mysql

1 голос
/ 24 февраля 2012

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

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

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

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

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

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

Надеюсь, вы поняли мою точку зрения здесь.Cheerz!/ Nookie

Ответы [ 4 ]

1 голос
/ 24 февраля 2012

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

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

0 голосов
/ 27 февраля 2012

Я почти разобрался, и вот решение пока: Вот строка .htaccess

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

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

$ vilken_trafikskola = mysql_query ("ВЫБРАТЬ * ОТ пользователей, где slug = '$ trafikskola_id'") или выход (mysql_error ());

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

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

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

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

0 голосов
/ 27 февраля 2012

Вот что я хотел бы предложить: если ваше имя пользователя только буквенно-цифровые символы, вы можете передать ник всем своим файлам 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.

0 голосов
/ 27 февраля 2012

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

...