мод переписать проблему? - PullRequest
       7

мод переписать проблему?

0 голосов
/ 31 декабря 2010

Я пытаюсь переписать этот URL:

http://www.example.com/user.php?user=username

в

http://example.com/username

Я использую этот код в моем .htaccess:

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

но это дает мне внутреннюю ошибку. Что-то не так?

1 Ответ

2 голосов
/ 31 декабря 2010

Чтобы соответствовать части строки запроса URL-адреса, вы должны использовать RewriteCond, например:

RewriteEngine On
RewriteCond %{QUERY_STRING} user=(.*)
RewriteRule ^user.php$ %1 [L]

Таким образом, правило RewriteCond соответствует имени пользователя в? User = name, а затем% 1 использует этозначение в результирующем перезаписи в последней строке моего примера.

В случае косой черты URL-адреса, подобные / name, автоматически перенаправляются на URL-адреса, такие как / name /, если веб-сервер находит, что / name является каталогом.Так что, если вы хотите отобразить user.php / user = name во что-то вроде /name/index.html, вы вставите этот слеш.Но если вы намереваетесь сопоставить его с файлом (или CGI-скриптом) в / name, он будет работать как положено.

...