2015-04-25 2 views
1

У меня возникли проблемы с моими правилами перезаписи. У меня есть некоторые URL-адреса с переменными, которые выглядят так: localhost/mysite/user.php?u=username. Я хочу, чтобы преобразовать их в этом: localhost/mysite/user/username/htaccess - нужна помощь в rewriterule

Это то, что я попытался

RewriteRule ^user/([A-Za-z0-9-]+)/?$ /mysite/user.php?u=$1 [NC,L]  
# Handle user page requests 

, но он не работает :(

/mysite/user.php находится в папке HTDOCS (потому что я нахожусь в локальной среде)

Если какой-то URL-адрес открывается localhost/user.php?u=username, он должен перенаправить или изменить на localhost/user/username/, возможно ли это?

ответ

1

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

Options -MultiViews 
RewriteEngine On 
RewriteBase /mysite/ 

RewriteCond %{THE_REQUEST} /user\.php\?u=([^\s&]+) [NC] 
RewriteRule^user/%1/? [R=302,L,NE] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{THE_REQUEST} \s/+(.*?)[^/][?\s] 
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301] 

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

позвольте мне проверить, работает ли это – hsn0331

+0

я получил ошибку :(, 'Объект не найден' – hsn0331

+0

То есть не хватает информации!. Где находится этот htaccess? Где находится user.php и какой URL-адрес вы видите в браузере для 404? – anubhava

Смежные вопросы