Как я могу преобразовать
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
в глобальную конфигурацию httpd.conf. Одной из непосредственных проблем является то, что в httpd.conf не разрешено правило RewriteBase. Но знать, как переписать это, может помочь понять, что делают эти правила.
Что делает RewriteBase /? Означает ли это, что он возьмет любой входящий URL и удалит все между именем сервера и последним элементом в URL и удалит его? То есть http://example.com/dir1/dir2/file становится http://example.com/file? Я думаю, что второе правило означает, что URL, такой как http://example.com/index.php, остается без изменений.
Третья и четвертая строки проверяются, чтобы увидетьесли запрашиваемое имя файла существует в виде файла или каталога, и если они существуют, то следующее правило перезаписи игнорируется.
В последней строке правило перезаписи сбивает с толку, похоже, оно должно соответствовать любому отдельному символу ипросто один символ (почему это не ^ (. *) $) и если это как-то совпадает, то перепишите всю строку как /index.php, который, кажется, каким-то образом знает, как обрабатывать URL http://example.com/index.phpпоскольку он по-прежнему содержит то, что было первоначально отправлено.