Возврат PHP-страницы на основе базового имени каталога без перенаправления - PullRequest
2 голосов
/ 13 марта 2011

Я хочу, чтобы сервер возвращал определенную страницу PHP на основе имени каталога без перенаправления.Например:

http://www.example.com/home

должен возвращать тот же результат, что и:

http://www.example.com/index.php?page=home

, но не должен перенаправлять адрес

Ответы [ 4 ]

2 голосов
/ 13 марта 2011

вам нужно создать специальный файл с именем .htaccess и поместить его в корневой каталог вашего веб-приложения.Содержимое файла может выглядеть следующим образом:

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^/home$ /index.php?page=home [L]

Затем настройте Apache (httpd.conf, httpd-vhosts.conf), чтобы ваше веб-приложение могло использовать этот файл конфигурации .htaccess

<VirtualHost 127.0.0.1:80>
    DocumentRoot "/path/to/your/webapp"
    ServerName localhost
    <Directory "/path/to/your/webapp">
        AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>
</VirtualHost>
* 1006.* Это хорошее чтение.

http://httpd.apache.org/docs/current/misc/rewriteguide.html

1 голос
/ 13 марта 2011

PHP не может сделать это без перенаправления, но есть множество решений:

Использование mod_rewrite с apache (.htaccess)

RewriteEngine on
RewriteRule ^home$ /index.php?page=home

Другой вариант - добавитьindex.php to / home, единственная функция, которая заключается в том, чтобы включить корень документа index.php.

0 голосов
/ 13 марта 2011

Если вы используете Apache, вы можете заглянуть в сценарии htaccess.Есть множество вариантов, доступных через поиск Google

0 голосов
/ 13 марта 2011

посмотрите на фреймворки, такие как (мои любимые) CodeIngniter или Zend, но вы не ограничены этим или пытаетесь заново изобрести колесо, купив свой собственный маршрутизатор

...