Как написать красивые URL без файла htaccess в php
Красивые URL без htaccess
Я хочу написать красивый URL, как:
http://yousite.com/member/1/ вместо http://yousite.com/index.php?page=member&id=1
Но я сделал это с файлом htaccess, и теперь я хочу сделать это без файла htaccess, потому что иногда у вас нет прав на редактирование файла htaccess на сервере.
3 ответа
Если у вас есть сервер 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
,
Псевдокод: получить идентификатор и перенаправить пользователя
Краткое объяснение: укажите идентификатор, который вы получили в URL, и перенаправьте его в нужное место с этим идентификатором.
Реальный код
header('Location: http://yousite.com/member/'.$_GET['id'].'/');
На самом деле вы можете динамически создавать новую папку для каждого участника с простым индексным файлом внутри, который включает ваш фронт-контроллер, но даже если это возможно, вы, вероятно, не хотите этого делать, а вместо этого хотите сменить свой хост.