URL переписать для lighttpd — регулярное выражение

Я хотел бы преобразовать свои URL в короткие без параметров get, но с первой попытки я бы сократил регулярное выражение до одного случая:

Есть много нормальных URL, которые не должны быть затронуты. Единственный случай, когда я хочу переписать URL-адреса, это страница профиля пользователя.

В настоящее время они выглядят так:

www.dummy.com/index.php?user=USERNAME&id=USERID

Целевая схема выглядит так:

www.dummy.com/USERNAME/USERID

Имена пользователей могут содержать в основном любой символ (без /), а не только a-z / A-Z.

Я никогда не был хорош в регулярных выражениях и понятия не имею, как справиться с этой проблемой. Любые предложения приветствуются.

Не будет запросов к папке (www.dummy.com/folder/subfolder), но подтверждать, что идентификатор пользователя является целочисленным значением, было бы неплохо, но не обязательно.

1

Решение

Вы можете использовать этот код в своем DOCUMENT_ROOT/.htaccess файл:

RewriteEngine On
RewriteBase /

RewriteRule ^(\w+)/(\d+)/?$ index.php?user=$1&id=$2 [L,QSA]

Это будет соответствовать одному из следующих URL:

/abcd/123
/abcd/123/
/abcd456/6789
/abcd456/6789/

РЕДАКТИРОВАТЬ:

В LigthHttpd используйте это эквивалентное правило:

url.rewrite = ( "^/(\w+)/(\d+)/?(?:\?(.*))?$" => "/index.php?user=$1&id=$2&$3" )
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]