2014-11-08 2 views
-1

Я использую wamp (localhost), и мое правило перезаписи не работает. Я попытался найти решение, но не смог найти ничего, что сработало бы.Правила перезаписи не работают

То, что я хочу сделать, я хочу, чтобы позволить пользователям вводить в

localhost/example/user1 

и я хочу сервер, чтобы показать им профиль user1. То есть, я хочу, чтобы сервер собирал данные от

localhost/example/group.php?u=user1 

, когда пользователь вводит первый URL-адрес.

То есть, когда пользователь вводит в,

localhost/example/user1 

пользователь должен получить, чтобы посмотреть профиль user1.

Теперь я использовал следующий код, чтобы заставить его работать. Но он говорит

Запрашиваемый URL/example/user1 не был найден на этом сервере.

Хотя учетная запись существует.

файл .htaccess находится в каталоге localhost/example. Я попытался поместить его в корневой каталог. Я попытался добавить следующую строку

RewriteBase /example/ 

после

RewriteEngine On 

Но ничто не похоже на работу.

RewriteEngine On 

RewriteRule ^([a-zA-Z0-9_-]+)$ group.php?u=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ group.php?u=$1 
+0

Да, я проверил, что .... и ya работает. @anubhava – bayblade567

+0

Ошибка узнает, что правило не выполняется, или что регулярное выражение не совпадает с тем, что находится в первом аргументе. Если правило было выполнено, но перезаписанный файл не существовал, вы получили бы ошибку «Запрошенный URL /example/group.php не был найден на этом сервере». Вы можете проверить, происходит ли что-либо, добавив следующее правило в .htaccess в вашем каталоге примеров: 'RewriteRule^(. *) $/Donotmatchthis/$ 1 [R, L]'. Если вы не перенаправлены на этот URL-адрес, то ваш файл .htaccess не читается, или ваше правило недоступно. – Sumurai8

+0

am перенаправляется на: http: // localhost/donotmatchthis/ – bayblade567

ответ

0

Так как вы проверили RewriteRule с другим именем, чем наводит на мысль ваш вопрос, вполне вероятно, что регулярное выражение неверно. Не пытайтесь сопоставить каждый символ, который может быть указан в вашем имени пользователя. Исключить символ, который не может быть в имени пользователя вместо символа косой черты.

RewriteRule ^([^/]+)/?$ group.php?u=$1 [L] 
+0

, но затем для этого он дает «Пользователь не существует» для даже localhost/example и для каждого другого URL-адреса. – bayblade567

+0

Вы не поместили его в .htaccess в свою папку с образцом? – Sumurai8

+0

да я сделал. Но я получаю «пользователь не существует», независимо от того, что я сейчас набираю. – bayblade567