Я хочу написать красивый URL, как:
http://yousite.com/member/1/ вместо http://yousite.com/index.php?page=member&ID = 1
Но я сделал это с файлом htaccess, и теперь я хочу сделать это без файла htaccess, потому что иногда у вас нет прав на редактирование файла htaccess на сервере.
Если у вас есть сервер Apache и включен AcceptPathInfo, вы можете просто использовать ссылки, такие как /index.php/nice/looking/url.
«Index.php» в середине URL-адреса может выглядеть немного странно, но я не думаю, что возможно, чтобы он выглядел лучше без .htaccess
В противном случае вы можете попросить своего хостера перенаправить любой URL-адрес в /index.php, чтобы можно было перезаписывать URL-адрес, не добавляя /index.php в свой URL-адрес.
Затем вы можете просто использовать регулярное выражение, чтобы определить, какой файл включить.
preg_match (‘@ [/] {1} ([a-zA-Z0-9] +) @’, $ _SERVER [«PATH_INFO»], $ соответствия) ($ соответствия будет содержать все «части» URL-адреса в массив)
Будьте осторожны с включением файлов, используйте белый список, чтобы быть уверенным, что никто не сможет загрузить внутренние файлы.
На самом деле вы можете динамически создавать новую папку для каждого участника с простым индексным файлом внутри, который включает ваш фронт-контроллер, но даже если это возможно, вы, вероятно, не хотите этого делать, а вместо этого хотите сменить свой хост.
Я мог бы иметь это Одна строка кода внутри index.php
страница, если я не хочу использовать .htaccess
,
Псевдокод: Получить идентификатор и перенаправить пользователя
Краткое объяснение: Concat идентификатор, который вы получили в URL и перенаправить в нужное место с этим идентификатором
Реальный код
header('Location: http://yousite.com/member/'.$_GET['id'].'/');