Мод переписать пользовательский URL - PullRequest
0 голосов
/ 21 октября 2010

Я здесь потерян.Я использую этот скрипт, чтобы дать пользователям возможность ввести свое имя пользователя lijke это: домен / имя пользователя

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]+)/?$ userpage.php?user=$1 [NC,L]
</IfModule>

Это работает отлично.Тем не менее, у каждого пользователя есть страницы, на которые я должен ссылаться: видео, музыка, изображения и т.д ...

Так что мне нужно что-то вроде:

domain/username/video

В коде php это должно быть что-то вроде:

user.php?user=test&page=video

И еще один вопрос: какой способ связи предпочтителен в этой ситуации?

userpage.php?user=test&page=video

или

/test/video

И наконец: возможно ли этоотрицать возможность ввода URL: domain/userpage.php?user=test&page=video?Вместо этого просто всегда показывают: domain/test/video

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 21 октября 2010

Я не на 100% уверен, что ты спрашиваешь? Вам нужно изменить правило перезаписи, чтобы оно соответствовало URL site.com/moonwalker/videos? Вы можете попробовать это:

RewriteRule ^([^/]+)/(images|videos|music)/?$ userpage.php?user=$1&page=$2 [NC,L]

Обновление Просто быстрая заметка о структуре URL домена / участника / видео. Это может привести к проблемам в будущем. Например, что если вы решите создать одну страницу, на которой будут показаны все видео участника? Возможно, вы захотите, чтобы URL выглядел примерно так, как site.com/members/videos. Это проблема, потому что правило перезаписи также будет соответствовать этому, но «members» не является именем пользователя.

Я бы, вероятно, структурировал URL-адреса своей страницы участника, например site.com/user/moonwalker/videos, чтобы они не противоречили будущим правилам перезаписи. Вы бы изменили вышеприведенное правило переписывания на это:

RewriteRule ^user/([^/]+)/(images|videos|music)/?$ userpage.php?user=$1&page=$2 [NC,L]

Затем вы можете добавить правило перезаписи, например:

RewriteRule ^members/(images|videos|music)/?$ allusers.php?page=$1 [NC,L]

Показать все видео участника.

1 голос
/ 21 октября 2010

Да, это возможно, посмотрев строку запроса :

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /userpage\.php[?\ ]
RewriteRule ^userpage\.php$ - [F]

Это необходимо, поскольку путь URL-адреса уже может быть переписан другим правилом, и поэтому использование только RewriteRule также будет соответствовать уже переписанным запросам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...