2013-03-28 2 views
1

Я использую следующий код, чтобы изменить все мои страницы из .php в простой/Использование Htaccess для перенаправления

RewriteRule ^(.*)/$ $1.php [L] 

Теперь придумали, как www.site.com/clubs/ или www.site. com/training/вместо www.site.com/clubs.php и www.site.com/training.php

Теперь в клубах я хочу показать клубы (используя данные из базы данных), и страница покажет as www.site.com/clubs/my-club/
Все данные моего клуба будут в базе данных, включая ссылку в поле url.

Я могу получить это со следующим кодом. Однако, когда я эхо использую метод $ _GET ['club'], он показывает my-club.php, а не только мой клуб.

RewriteRule ^clubs/([^/]*)$ clubs.php?url=$1 [L] 

Концовка/в URL, кажется, переоденусь в .php

+0

Как переписать правила сортировки? Я думаю, это зависит от того, что – Uby

+0

Тот, кто меняет файлы из файла.php в файл/сначала, а в клубах один –

ответ

2

Вы можете добиться того, что вам нужно по-разному, однако это, как я хотел бы сделать это. Изменения правила порядка, как это:

RewriteRule ^clubs/([^/]*)/$ clubs.php?url=$1 [L] 
RewriteRule ^(.*)/$ $1.php [L] 

Я добавил слэш первого правила, так как я думаю, является частью шаблона. Если я ошибаюсь, вы можете просто удалить его.

Если вы хотите добавить какой-либо строку запроса из исходного запроса URL следует использовать QSA вместе с L, так [L,QSA]

+0

Ive читал об этой строке запроса, но я ее никогда не понимал. Как это будет отличаться от использования [L]? –

+1

Разница заключается в том, что с помощью 'QSA' URL-адрес, например' www.site.com/clubs/my-club/? K1 = v1 & k2 = v2', был бы переписан как 'clubs.php? Url = my-club & k1 = v1 & k2 = v2 '; без QSA строка запроса будет проигнорирована. Конечно, все зависит от того, что вам нужно. – Uby

+0

Так может ли это быть, если бы я проходил параметры через страницу с моим клубом? –

0

Я использовал это ВПО в прошлом и работать нормально.

RewriteRule ^clubs/(.*)/$ clubs.php?club_name=$1 [L,B] 

где $ _GET [ 'club_name'] = "my_club" и Ваш URL будет выглядеть

http://www.site.com/clubs/my_club/ 
0

Попробуйте это:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([0-9a-zA-Z\-]+?)/([0-9a-zA-Z\-]+?)?$ $1.php?url=$2 

Whan вы запустите:

http://localhost/club/ 

результат будет

http://localhost/club.php 

Whan вы запустите:

http://localhost/club/my-club 

результат будет

http://localhost/club.php?url=my-club 
Смежные вопросы