Правила переписывания PHP - PullRequest
       7

Правила переписывания PHP

7 голосов
/ 18 февраля 2009

Фактически URL, который использует мое приложение:

http://site.com/search.php?search=iPhone 

но я бы хотел, чтобы можно было добиться того же с

http://site.com/iPhone

У меня нет опыта переписывания правил, как мне это настроить?

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

http://site.com/iPhone

без изменения на дисплее

http://site.com/search.php?search=iPhone 

Возможно ли это? Спасибо.

Ответы [ 3 ]

11 голосов
/ 18 февраля 2009

Создайте файл с именем .htaccess в корне вашего сайта и поместите его в него.

RewriteEngine on 
Options +FollowSymlinks
RewriteBase / 

RewriteRule ^(.*) search.php?search=$1 [R]

Должен сделать свое дело.

Однако я бы посоветовал вам сделать это немного более конкретным, поэтому, возможно, потребует пользователя поискового каталога в вашем URL. например, вместо mysite.com/IPhone используйте mysite.com/search/IPhone, который будет работать как

RewriteEngine on 
Options +FollowSymlinks
RewriteBase / 

RewriteRule ^search/(.*) search.php?search=$1 [R]

Это упрощает перенаправление обычных страниц, например, о нас или основной домашней странице.

Как говорит Крис, это делает не PHP, а Apache, и его работа может зависеть от настроек вашего хостинга.

5 голосов
/ 18 февраля 2009

Вам нужно указать что-то подобное в вашем файле .htaccess:

RewriteEngine on
RewriteRule /(.*) /search.php?search=$1

Проверьте также:

3 голосов
/ 18 февраля 2009

Насколько я знаю, правила переписывания - это не часть PHP, а Apache (в частности, mod_rewrite) или любой другой используемый вами сервер. Для Apache вам нужно на сервере иметь файл с именем .htaccess, и в него положить что-то вроде:

RewriteEngine on
RewriteRule ^(\w+)/?$ /index.php?search=$1

^(\w+)/?$ - это регулярное выражение - оно соответствует любому слову из 1 или более символов, за которым может быть /. Таким образом, он меняет site.com/iPhone на site.com/index.php?search=iPhone. Звук примерно так?

...