Как скрыть строку запроса и переписать URL с помощью htaccess - PullRequest
0 голосов
/ 19 января 2012

Я немного искал и не могу найти решение. Вот что я хотел бы. Пользователь вводит:

Case 1: www.example.com/user/profile.php?alias=bob
Case 2: www.example.com/user/bob

Оба должны отображаться в браузере пользователя как:

www.example.com/user/bob

Внутри это должно быть "profile.php? Alias ​​= bob"

В настоящее время у меня в файле htaccess есть следующие правила mod_rewrite:

RewriteEngine On
#Converting alias to query
RewriteRule ^([A-Za-z0-9-]+)/?$ profile.php?alias=$1 [QSA,L]

Что работает для случая 2. Однако для случая 1 URL все еще отображается с полным запросом. Как заставить его правильно отображаться для случая 1?

1 Ответ

0 голосов
/ 19 января 2012

Попробуйте добавить следующее в файл htaccess в корневом каталоге вашего сайта.

RewriteEngine On
RewriteBase /

#if the request is using profile.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /user/profile\.php\?alias=([^&\ ]+) [NC]
#redirect to user/[ALIAS]
RewriteRule . /user/%1 [L,R=301]

#extract alias from /user/alias
RewriteRule ^user/([A-Za-z0-9-]+)/?$ profile.php?alias=$1 [QSA,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...