Поиск справки с 2-уровневым чистым URL-адресом с использованием.htaccess

115
12

Я работаю над сайтом, который будет иметь два уровня URL-адреса.

Моя цель - иметь чистый URL-адрес, подобный этому...

http://domain.com/username/dosomething

В настоящее время мой уродливый URL-адрес выглядит так...

http://domain.com/index.php?page=username&command=dosomething

Моя попытка

RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1&command=$2
RewriteRule ^([a-zA-Z0-9]+)/$1/$2 index.php?page=$1&command=$2

спросил(а) 2011-07-22T17:48:00+04:00 9 лет, 3 месяца назад
1
Решение
125

Ваши ссылки просто ссылаются на весь ваш URL, поэтому то, что вы говорите, чтобы дать вам, - index.php? Page = {полный URL} & command = {null}

Вам нужно настроить URL-адрес и использовать только скобки вокруг страницы переменных и команды. So ^ domain.com/([имя пользователя] +)/(dosomething)

затем перепишите:

http://domain.com/index.php?page= $ 1 & command = $ 2

при условии, что ваши переменные страницы и команды являются именем пользователя и dosomething соответственно

ответил(а) 2011-07-22T18:50:00+04:00 9 лет, 3 месяца назад
41

Вы не используете свои обратные ссылки правильно в первой части. Backreferences - это выраженные в скобках выражения, которые затем заполняются в $ 1, $ 2 и др. во второй части правила. например:

RewriteRule ^([^/]+)/([^/]+)$ /index.php?page=$1&command=$2

Эти выраженные в скобках выражения соответствуют одному или нескольким non-/символам и заполняют их в $ 1 и $ 2 соответственно.

ответил(а) 2011-07-22T17:54:00+04:00 9 лет, 3 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема