Как переписать HTTP-запрос на получение с помощью .htaccess

Мне нужно правило .htaccess для перенаправления:

example.com/view-post.php?id=40 в example.com/article/40

Таким образом, браузер показывает example.com/article/40 в адресной строке, но сервер использует example.com/view-post.php?id=40.

Что непонятно? Предоставьте нам свой код, ошибки.

KarlR 28.08.2018 14:00

Всем привет. Похоже, по этому вопросу вы получили нужный ответ, а затем удалили вопрос. Хотя вам разрешено удалять свои сообщения, удаление вопроса не соответствует духу Stack Overflow, если будут удалены и полезные ответы.

halfer 03.01.2019 18:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
47
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Следующие работы:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^article/(\d+)*$ ./view-post.php?id=$1

См .: https://code.tutsplus.com/tutorials/using-htaccess-files-for-pretty-urls--net-6049

Какие URL-адреса вы пытаетесь использовать для CSS и JS?

Ketan Yekale 28.08.2018 15:33

.htaccess не будет работать на сервере nginx. Поэтому вам следует попробовать следующий код для маршрутизации только с использованием скрипта php. Сохраните этот сценарий в своем файле index.php.

$url = $_SERVER['REQUEST_URI'];
if (preg_match('/article/', $url)){ 
  $id = $_GET['id'];
  $url = $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].'/view-post.php?id='.$id;  
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_VERBOSE, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $httpResponse = curl_exec($ch);
  echo $httpResponse;
}else{
  echo "404 Error, Page not found";
}

Если у вас есть другой URL-адрес маршрута Ex. example.com/post/40 и example.com/porfile/40, тогда вы можете добавить условие в if, как показано ниже,

if (preg_match('/article/', $url) || preg_match('/porfile/', $url) || preg_match('/post/', $url)){ 

Надеюсь, этот ответ вам поможет :)

В вопросе написано .htaccess

Ketan Yekale 28.08.2018 14:52

Другие вопросы по теме