отображать динамическую страницу с использованием перенаправления htaccess

#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']