Я разработал приложение на PHP с использованием системы маршрутизации через .htaccess
, и до сегодняшнего дня мне удалось развернуть это приложение в любой серверной среде без каких-либо проблем ,.htaccess маршрутизация в домене ip с ~ пользовательским параметром (apache UserDir)
Сегодня мой клиент попросил меня развернуть приложение на его сервере, у которого еще нет какого-либо домена, и по этой причине он предоставил мне IP-адрес, чтобы проверить, все ли в порядке. Проблема в том, что для этого IP требуется, чтобы в URL-адресе присутствовал параметр имени пользователя, и это приводит к тому, что выполнение всегда перенаправляется на страницу ошибок 404 по умолчанию сервера.
IP-это что-то вроде этого (некоторые значения были изменены):
http://192.185.65.31/~gef/
Если я исполняю только эту ссылку без каких-либо дополнительных параметров, я могу достигнуть моего serverindex.php
файл, который настроен, чтобы быть моим DirectoryIndex
в .htaccess
. Но если я попытаюсь добавить больше параметров, например, язык (en/
), я автоматически перенаправляюсь на страницу 404.
Моя .htaccess
конфигурация маршрутизации выглядит следующим образом:
DirectoryIndex serverindex.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . serverindex.php
Эта конфигурация всегда позволяет мне получать и манипулировать URL, как в примере bellowe:
Example: http://example.com/param1/param2/param3
Array
(
[0] => param1
[1] => param2
[2] => param3
)
Как я могу установить .htaccess
так, что я оставьте имя пользователя нетронутым в URL-адресе (чтобы сервер мог обработать его и зарегистрировать правильную учетную запись пользователя) и передать следующие данные в качестве параметров в приложение?
Example: http://example.com/~username/p1/p2/p3
Array
(
[0] => p1
[1] => p2
[2] => p3
)
Возможно, переписывание не разрешено в файле apache .conf? –
Это, я выполнил эту строку кода, и получилось true 'strpos (shell_exec ('/ usr/local/apache/bin/apachectl -l'), 'mod_rewrite')! == false' – CIRCLE