Переписывание URL-адресов в PHP без htaccess

Веб-сайт работает на веб-узле, где у нас нет доступа к файлу .htaccess . Тем не менее, я хочу переписать URL для удобных URL-адресов.

например, оригинальный URL-адрес

 www.example.com/file?q=name 

ожидаемый URL

 www.example.com/file/name 

Solutions Collecting From Web of "Переписывание URL-адресов в PHP без htaccess"

Как говорили другие люди, просто используйте ссылки, например /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"], $matches) ($ matches будет содержать все «части» URL-адреса в массив)

Будьте осторожны с включением файлов, используйте белый список, чтобы убедиться, что никто не сможет загружать внутренние файлы.

как Аликс Аксель предложил вам использовать

 www.example.com/index.php/file/name 

то вы будете использовать $_SERVER['REQUEST_URI'] для обработки URL-адреса.

Лучше всего будет иметь такие URL-адреса:

 www.example.com/index.php/file/name 

Однако вы должны переписать свой код PHP.

Если сервер Apache и AcceptPathInfo включены, вы можете использовать URL, который вы написали. Затем запрос /file/name будет автоматически перезаписан в /file с помощью значения /name PATH_INFO, если /file является обычным файлом.

Попробуй это

www.example.com/file?q=name

в

www.example.com/name (лучше, чем www.example.com/file/name )

Откройте ваш .htaccess из корневой папки проекта и добавьте этот код

 Options +FollowSymLinks RewriteEngine On RewriteRule \.(js|css|jpe?g|png|gif)$ - [L] RewriteRule "^([ \w-]+)/?$" /file?q=$1 [L,QSA] 

Это решает вашу проблему. См. Сообщение о том, как переписать URL-адрес в .htaccess