Возможно ? Могу ли я использовать чтение «PHP-S localhost» с помощью .htaccess?

#php #.htaccess #web-services

Вопрос:

Могу ли я использовать специальный текст в командной строке для чтения .htaccess файла со php -S встроенной службой в моем проекте

Пример : ~/project> $ php -S localhost:8000 -read .htaccess в моем проекте для проверки переменной $_GET['url'] для перенаправления маршрута управления на какой-либо файл.

Возможный способ ?

Мой мини-проект :

  • Это мой каталог проектов
 project
   |- src
   |- index.php
   |- .htaccess
 
  • Код в .htaccess файле :
 <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^(. )$ index.php?url=$1 [QSA,L]
</IfModule>

 
  • Код в index.php файле :
 <?php

$url = $_GET['url'];

if ($url == "hello") {

    // go to hello file

} else {

    // go to other file

}

?>
 

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

1. Запросы на физически не существующие файлы направляются в index.php или index.html в текущей папке автоматически, и если ни один из них не найден, он продолжает проверку родительской папки (см. php.net/manual/en/features.commandline. webserver.php ) Однако вы не получите параметр GET автоматически, вам нужно будет найти первоначально запрошенный URL-адрес внутри $_SERVER.

2. Если вы реализуете вышесказанное, вы можете использовать ту же логику позже, когда все это будет выполняться на «реальном» веб-сервере, который использует файлы .htaccess / может выполнять перезапись. Просто перепишите на index.php тогда без каких-либо параметров или используйте FallbackResource вместо этого директиву.

Ответ №1:

htaccess специфичен для сервера Apache. Он не работает со встроенным веб-сервером PHP.

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

1. У тебя есть способ ? для решения этой проблемы ? самим собой . файл htaccess

2. Ну, в PHP вы можете установить Location заголовок для перехода к другому файлу . Но… почему бы вам просто не использовать Apache? Вы не будете использовать встроенный сервер PHP, когда будете запускать свой сайт. Если вы также протестируете Apache, вы получите более точное представление о том, как будет работать живая система.