#php #.htaccess
#php #.htaccess
Вопрос:
я хочу перенаправить http://testsite.com/campus.php в http://testsite.com/campus.php но файл campus.php не существует. Он извлекает содержимое страницы из базы данных, и оно должно быть отображено. У меня нет никакой идеи.
Комментарии:
1. Возможно, я неправильно это читаю, но похоже, что эти два URL-адреса совпадают.
2. Пожалуйста, уточните. Ваши 2 URL-адреса тоже совпадают. Уделите некоторое время написанию вашего вопроса.
3. Извините за мой плохой английский. Два URL-адреса одинаковы, но я хочу отобразить содержимое из базы данных, используя общую страницу. Итак, страница campus.php не существует.
Ответ №1:
Прежде всего, ваши два URL-адреса совпадают.
Но если вы хотите вызвать страницу, которая на самом деле не существует, но извлекается из базы данных, вы обычно перенаправляете некоторую часть URL, указывая на $_GET
переменную, используемую для доступа к базе данных. Все запросы фактически отправляются в index.php
, и index.php
обрабатывает базу данных и отображает правильные данные.
# Conisde this pseudocode
# Rewrite somepage to index.php?pagename=somepage
RewriteRule /somepage.php /index.php?pagename=somepage
# The actual .htaccess rewrite looks like:
RewriteEngine On
# Assuming pagename is upper/lower letters and numbers only...
RewriteRule /([A-Za-z0-9] ).php /index.php?pagename=$1
Теперь в вашем PHP вы используете $_GET['pagename']
(campus в вашем случае, я думаю) для вызова текста из базы данных и его отображения.
РЕДАКТИРОВАТЬ Я добавил .php
в RewriteRule. Теперь /campus.php
перезаписывается в /index.php?pagename=campus
Комментарии:
1. Вы поняли реальную проблему. Я использовал ваш код, но возникает следующая ошибка. Запрошенный URL-адрес /campus.php не найден на этом сервере.
2. @user738026 Смотрите правку выше. Я изменил его, чтобы добавить
.php
расширение, которое перепишет campus.php в$_GET['campus']