Как настроить .htaccess?

На сайте имеются ссылки:
/index.php?a=welcome
/index.php?a=feed
/index.php?a=feed&filter=picture
/index.php?a=profile&u=username
/index.php?a=profile&u=username&filter=picture
/index.php?a=admin

Необходимо сократить их до:
/welcome
/feed
/feed/filter/picture
/profile/username
/profile/username/filter/picture
/admin
соответственно. (но это не се ссылки, только необходимые - по которым аналогично я смогу поправить остальные)

Очень часто предлагают вариант
RewriteEngine on
RewriteCond %{request_filename} -f
RewriteRule ^(.*) $1 [L]
RewriteRule ^(([^/]*)+)(/([^/]{0,32})(/.+)?)?$  index.php?a=$1&q=$3    [L]
но он вообще ни как не влияет.

Возможно самая сложная ссылка
/index.php?a=group&name=group&r=members
её нужно превратить в
/groups/groupname/members

Если универсального правила ко всем ссылкам нет, могу привести все ссылки
  • Вопрос задан
  • 209 просмотров
Пригласить эксперта
Ответы на вопрос 2
@armenka29
Программист, бизнесмен
/index.php?a=welcome
получается как:
RewriteRule /welcome /index.php?a=welcome [L]
или
RewriteRule /(.*?) /index.php?a=$1 [L]

/index.php?a=profile&u=username
получаться как:
RewriteRule /(.*?)/(.*?) /index.php?a=$1&u=$2

а вобще читай про RewriteRule
я так понимаю ты просто тупо откуда то берешь правила и вобще не разобравшись пытаешься сувать в хтачес....
Ответ написан
profesor08
@profesor08
Делаешь раз
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]


И теперь ты можешь обращаться как site.tu/blabla/blabla/blabla
Ты сразу-же скопируешь, вставишь, перейдешь по ссылке сформированной желаемым образом, но облом! Тебе придется переделывать код сайта, чтоб обрабатывать параметры запроса. А точнее парсить REQUEST_URI и обрабатывать параметры. Ничего сложного тут нет, так что дерзай.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы