2013-10-01 2 views
1

Прямо сейчас, отображаются следующие адреса:HTAccess код не работает для тщеславия URLS

www.mysite.com/account.php?username=$username

Что я хочу:

www.mysite.com/$username

Я использую следующий код мой htaccess файл:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

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

Но это не работает: URL-адреса те же, что и раньше.

Что случилось?

ответ

1

Вашего правило делает только это:

Если кто-то просит www.mysite.com/$username, внутренне сервер ресурс в /account.php?username=$username.

Это все. Синтаксис: RewriteRule <the URI that matches this> <gets internally rewritten to this>

Таким образом, у вас ничего не происходит, чтобы изменить URL. Это не работает mod_rewrite. Похоже, вы хотите, чтобы внешняя перенаправление браузера так, чтобы изменения в строке местоположения менялись. Для этого это намного сложнее:

RewriteCond %{THE_REQUEST} \ /account\.php\?username=([^&\ ]+)&?([^\ ]*) 
RewriteRule^/%1?%2 [L,R=301] 
+0

+1 для ясности. Редактирование URL-адресов работает (я вижу его в адресной строке), но теперь вместо отображаемой учетной записи пользователя я вижу свою страницу ошибок 404. Любая идея почему? –

+0

@ChHr есть ли какая-нибудь другая CMS или какие-либо другие правила, которые могут мешать? Вам все еще нужно использовать правила, которые у вас есть в вашем вопросе, наряду с переадресацией выше. –

+0

Пожалуйста, см. Мой отредактированный вопрос, я включаю свой полный htaccess. Может ли что-то вмешаться? –