Веб-сайт работает на веб-хосте, где у нас нет доступа к a .htaccess
файл. Однако я хочу сделать перезапись URL для удобных для пользователя URL.
например, Исходный URL
www.example.com/file?q=name
ожидаемый URL
www.example.com/file/name
Как сказано, что другие люди, просто используйте ссылки, такие как /index.php/ Хороший / смотрит / URL
.
«Index.php» в середине URL может выглядеть немного странно, но я не думаю, что можно было бы выглядеть лучше без .htaccess
else, вы можете попросить вашего хостера перенаправить любой URL для / index.php Так что вы можете обрабатывать перезаписи URL без того /index.php
в вашем URL.
Затем вы можете просто использовать совпадение REGEX, чтобы обнаружить, какой файл включить.
preg_match ('@ [/] {1} ([a-za-z0-9] +) @', $ _server ["path_info"], $ matchs)
($ matches будут содержать все "части «Урл в массиве)
Будьте осторожны с включением файлов, используйте Whitelist , так что вы уверены, что никто не сможет загрузить внутренние файлы.
, поскольку Аликс Аксель предположил, что вы можете использовать
www.example.com/index.php/file/name
, то вы будете использовать $_SERVER['REQUEST_URI']
для обработки URL.
Лучше всего, если у вас будут такие URL:
www.example.com/index.php/file/name
Вы перепишете ваш PHP-код.
Если у вас есть сервер Apache и AcceptPathInfo включен, то вы можете использовать написанный вами URL. Запрос /имя/файла
будет автоматически перезаписан на /файл
со значением PATH_INFO, равным /имя
, если /файл
является обычным файлом.