2015-04-18 2 views
-1

У меня есть это правило в .htaccess:RewriteRule для .htaccess

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

Выход:

http://domain.tld/username 

Желаемый результат:

http://domain.tld/user/username 

Как я могу это сделать?

+0

Ввод http: // domain.tld/user.php? Username = bob, вывод: http: // domain.tld/user/bob? Или наоборот? – Drakes

ответ

0

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

Options -MultiViews 
RewriteEngine On 
RewriteBase/

RewriteRule ^user/([^/]+)/?$ user.php?username=$1 [L,NC,QSA] 
+0

Внутренняя ошибка сервера Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос. – User

+0

Комментировать строку 'Параметры' и повторный тест. – anubhava

+0

Можете ли вы мне помочь еще раз? Он не загружает изображения и стили там, мне нужно добавить ../ везде? – User

2

Вот как изменить URL со строкой запроса на пути:

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/user.php [NC] 
RewriteCond %{QUERY_STRING} ^.*username=([a-zA-Z]+).*$ [NC] 
RewriteRule ^(.*)$ /user/%1? [L] 

ввода

http://domain.tld/user.php?username=bob 

Выход

http://domain.tld/user/bob 

Вот как идти другим путем:

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/user/ [NC] 
RewriteRule ^user/(.+)$ /user.php?username=$1 [L] 

Вход

http://domain.tld/user/bob 

Выход

http://domain.tld/user.php?username=bob 

Вы можете протестировать .htaccess здесь: http://htaccess.madewithlove.be/