Я разработал приложение на PHP, используя систему маршрутизации через .htaccess
и до сегодняшнего дня мне удалось без проблем развернуть это приложение в любой серверной среде.
Сегодня мой клиент попросил меня развернуть приложение на своем сервере, с которым еще не связан ни один домен, и по этой причине он предоставил мне 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-адресом, как показано ниже:
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
)
У вас есть относительный путь для вашего целевого сценария. Вам может понадобиться добавить RewriteBase
чтобы это работало, например
RewriteBase /~gef/
Других решений пока нет …