2013-04-08 3 views
0

Что я имею в виду, что, таким образом позволяет сказать, у меня есть страница для самого пользователя: localhost/blog/profile/ImUser1Создать последующие страницы для пользователя

Я хочу, чтобы другие страницы для пользователя, как: localhost/blog/profile/ImUser1/my_subscribers Или localhost/blog/profile/ImUser1/my_posts

Как создать такие страницы, как страница подписчика?

Мой текущий код .htaccess:

RewriteEngine On 
CheckCaseOnly On 
CheckSpelling On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^profile/(.*)$ /blog/profile.php?username=$1 [QSA,L] 

Это позволяет мне добраться до userpage. И мне нужно указать имя пользователя в URL-адресе, потому что это то, как я извлекаю информацию о том, кто подписался на них.

Вот как я структурировал мой PHP до сих пор:

if(isset($_GET['username']) === true && empty($_GET['username']) === false){ 
    $username = $_GET['username']; 

    if(user_exists($username) === true){ 
      echo 'Welcome to '.$username.' page!'; 
    } 
}else{ 
      echo 'Please enter a username in the URL'; 
} 

Как настроить мой PHP и .htaccess, чтобы заставить его работать?

+0

Проверьте это: http://stackoverflow.com/questions/7930849/php-url-rewrite –

ответ

0

Вы можете добавить дополнительную строку строки запроса в запрос для profile.php, который определяет режим. Что-то вроде этого:

RewriteRule ^profile/([a-zA-Z0-9_-]+)/?$ /blog/profile.php?username=$1 [L] 
RewriteRule ^profile/([a-zA-Z0-9_-]+)/([a-z][a-z_]*)/?$ /blog/profile.php?username=$1&mode=$2 [L] 

Таким образом, запрос на /blog/profile/some_user/some_mode отправит запрос на profile.php?username=some_user&mode=some_mode позволяет ваш PHP скрипт для проверки переменной режима и отобразить страницу или перенаправить страницу соответственно.

Я изменил шаблон имени пользователя с (.*) на номер [a-zA-Z0-9_-]+, чтобы остановить его сбрасывание косой черты и потребовать, чтобы он был как минимум одним символом в длину. И я использовал [a-z][a-z_]* для шаблона режима, чтобы он начинал с строчных букв, а затем позволял подчеркивать.

Смежные вопросы