Имя пользователя мод переписать - PullRequest
1 голос
/ 26 февраля 2011

Мне нужна помощь с переписыванием модов ... Я пытаюсь изменить

domain.com/user.php?username=foo

на

domain.com/foo

Мой текущий переписать:

RewriteRule username/(.*)/ user.php?username=$1 [L]
RewriteRule username/(.*) user.php?username=$1 [L]

который выводит

domain.com/username/foo

но я не доволен этим.

Ответы [ 2 ]

3 голосов
/ 26 февраля 2011

Вы хотите:

RewriteRule ^(.*)/ user.php?username=$1 [L]
RewriteRule ^(.*) user.php?username=$1 [L]

Это будет отправлять каждый запрос к user.php.Если вы не хотите, чтобы, вероятно, было лучше отправлять все в скрипт маршрутизации php, который может обрабатывать вещи немного лучше, например,

# if the requested file exists (e.g., css, javascript) then serve it up 
# otherwise send to router.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ router.php [L]

Тогда в роутере вы можете получить путь от $_SERVER['REQUEST_URI'], например

$urlparts = parse_url($_SERVER['REQUEST_URI']);
$path = explode('/', $urlparts['path']);

if(isUser($path[0])) {
    $_GET['username'] = $path[0];
    include 'user.php';
}
2 голосов
/ 26 февраля 2011
RewriteRule (.*) user.php?username=$1 [L]
...