Перенаправление трафика на PHP-скрипт из определенной папки

#php #.htaccess

#php #.htaccess

Вопрос:

Я в основном пытаюсь создать крошечный маршрутизатор, который будет принимать любой трафик из «mysite.com/news/article_01 » и перенаправьте это на скрипт, находящийся в корневой папке «html» под названием «news.php «где я бы записал название статьи в качестве переменной и доставлял оттуда контент.

Хитрость в том, что я не хочу перезаписывать текущий index.html досье.

Я нашел этот небольшой фрагмент:

 Options  FollowSymLinks
RewriteEngine On
 
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
 
RewriteRule ^.*$ ./index.php
  

У меня такое чувство, что это перенаправит ВЕСЬ трафик в php-файл, который мне не нужен…

Мысли?

Комментарии:

1. Да, это перенаправило бы ВЕСЬ трафик на index.php . Как еще вы хотите маршрутизировать?

2. Я хотел бы захватывать только трафик, который имеет «/ news /» в URL

3. Затем используйте RewriteRule ^news/ index.php [L,NC]

4. Не могли бы вы опубликовать это в качестве ответа?

Ответ №1:

Похоже, для вашего требования вы сможете использовать это более целенаправленное правило:

 Options  FollowSymLinks
RewriteEngine On
 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^news/ index.php [L,NC]
  

Это приведет только к маршрутизации /news/ URI index.php вместо всего.

Комментарии:

1. Это идеально… одна крошечная проблема, похоже, захватывает mysite.com/news но не mysite.com/news/article

2. Если вы получите доступ $_SERVER['REQUEST_URI'] , он покажет полный URI

3. Когда я добавляю дополнительный / в домен, кажется, я получаю ошибку рекурсии… «Запрос превысил лимит 10 внутренних перенаправлений из-за вероятной ошибки конфигурации. Используйте ‘LimitInternalRecursion’, чтобы при необходимости увеличить лимит. Используйте «отладку на уровне журнала», чтобы получить обратную трассировку «. (Ошибка 500)

4. Есть ли у вас какой-либо другой код в вашем .htaccess? И какой точный URL-адрес вы запрашиваете для входа LimitInternalRecursion ?

5. К сожалению, у меня была другая переписка для обработки «красивых имен»… Еще раз спасибо за ваше время!!