2013-04-06 2 views
1

Я пробовал много запросов/ответов от google и переполнения стека, но не могу найти тот, который работает для меня.htaccess запрос переписать первый раз

У меня есть файл users.php, и когда я отправляю user.php? User = имя пользователя, я хочу, чтобы это были пользователи/пользователь/имя пользователя. У меня уже есть расширение php, удаленное в моем .htaccess.

Каков наилучший способ для этого? Кроме того, было бы полезно помочь с необходимой структурой файлов.

Edit: Вот то, что я до сих пор:

Options +FollowSymlinks -MultiViews 
RewriteEngine on 

# to make `/path/index.php` to /path/ 
RewriteCond %{THE_REQUEST} ^GET\s(.*/)index\.php [NC] 
RewriteRule . %1 [NE,R=301,L] 

RewriteCond %{THE_REQUEST} ^GET\s.+\.php [NC] 
RewriteRule ^(.+)\.php$ /$1 [NE,R=301,L,NC] 

RewriteCond %{REQUEST_URI} !\.php$ [NC] 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule . %{REQUEST_URI}.php [L] 

ответ

0

Попробуйте этот HTAccess код

RewriteEngine On 
RewriteRule ^users/user/(.*)/$ users.php?user=$1 [L] 
+0

Это даст мне имя пользователя/пользователя/имя пользователя? – 2013-04-06 14:25:15

+0

проверить мой обновленный ответ. он даст вам использование/user/username format –

0
RewriteEngine On  
RewriteRule ^users/user/$ users.php?user=$1 [NC,L] 
+0

Это, похоже, не работает для меня с файлом htaccess, который у меня есть ... – 2013-04-06 14:30:40

0

Хех .. Мы все имеем одинаковые ответы! Попробуйте удалить весь код в файле .htaccess , а затем проверить это в одиночку, только сам:

Options +FollowSymlinks 
RewriteEngine on 

RewriteRule ^users/user/([a-z0-9-_]+) /users.php?user=$1 [NC] 

Используйте [NC] флаг в самом конце правила должны быть согласованы его в зависимости от регистра. Это означает, что правилу будет все равно, появятся ли буквы как в верхнем, так и в нижнем регистре.


Теперь, если папка, содержащая ваш /users.php имеет право с /html, дать этому попытку:

Options +FollowSymlinks 
RewriteEngine on 

RewriteRule ^users/user/([a-z0-9-_]+) /html/users.php?user=$1 [NC] 

Просто изменить "HTML" как имя папки, содержащей ваш users.php.


Хорошо, позволяет проверить это правило:

RewriteRule ^users/user/([a-z0-9-_]+) /beta/users.php?user=$1 [NC] 

Но, пожалуйста, всегда не забывайте о RewriteEngine on и комментировать то, что происходит. И URL, который вы должны проверить, - это не существующие URL-адреса, которые мы пытаемся переназначить. (например, domain.com/users/user/name без косой черты в конце.)

+0

Я пробовал это только один, и я получаю 404, когда пытаюсь получить доступ к домену./пользователей/пользователь/имя пользователя. Я запускаю простой тест, чтобы повторить значение имени пользователя на странице .... – 2013-04-06 18:59:15

+0

@ user2252323 Хорошо, загляните в свой файловый менеджер, что такое имя ** Текущая папка **, где ваши существующие _/пользователи .php_ находится? – 5ervant

+0

он находится на общем сервере в GoDaddy, но похоже, что каталог «html». – 2013-04-06 19:51:02

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