URL Mod-Rewrite - PullRequest
       17

URL Mod-Rewrite

2 голосов
/ 09 ноября 2009

В настоящее время у меня есть рабочий URL:

http://example.com/security-services.php?service=fixed-camera-surveillance

, а затем у меня PHP говорит: $_REQUEST['service'], чтобы сделать что-то ...

Но я бы хотел добиться той же функции, если бы URL выглядел следующим образом:

http://example.com/security-services/fixed-camera-surveillance

Спасибо!

Ответы [ 3 ]

4 голосов
/ 09 ноября 2009

Файл .htaccess с чем-то вроде этого должен сделать это.

Options +FollowSymLinks
RewriteEngine On

RewriteRule security-services/(.*)/? security-services.php?service=$1 [L]

Часть, которая говорит security-services/(.*)/?, соответствует URL в браузере и переписывает его на security-services.php.

Ключевой частью является (.*), который захватывает эту часть URL-адреса и передает ее сценарию PHP в виде значения GET.

1 голос
/ 09 ноября 2009

Попробуйте это правило:

RewriteEngine on
RewriteRule ^security-services/([^/]+)$ security-services.php?service=$1 [L]

[^/]+ описывает следующий сегмент пути после того, как /security-services, (…) образует группу, совпадение которой затем может содержать ссылку $1 в подстановке.

А если вам нужен более общий файл для …-service.php файла:

RewriteEngine on
RewriteRule ^([^/-]+)-services/([^/]+)$ $1-services.php?service=$2 [L]
0 голосов
/ 09 ноября 2009

Вы можете создать правило следующим образом:

RewriteRule ^security-services/(.*)/? /security-services.php?service=$1

Если вы используете файл .conf, измените ^ на ^/

...