Можно ли создавать динамические страницы на основе url, без “?”, “&”, “=” или как их индексировать?

Да, в PHP можно создавать динамические страницы на основе URL без использования символов "?", "&" и "=".

Обычно в PHP для передачи параметров в URL используются символы "?", "&" и "=", но существуют также альтернативные способы.

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

В файле .htaccess можно задать правила для переписывания URL. Например, следующее правило переписывает URL, в котором параметр page указывается после слеша, например /about, на страницу with_param.php с передачей значения параметра через директиву [QSA] (Query String Append):

RewriteEngine On
RewriteRule ^([^/]+)/?$ with_param.php?page=$1 [QSA]

Теперь при обращении к URL /about, будет вызываться файл with_param.php, а значение параметра page будет равно "about". Можно добавить любое количество правил для разных страниц и параметров.

С помощью модуля mod_rewrite можно также задавать более сложные правила, например, преобразовывать URL вида /page/param/param2 в запросы с указанием параметров, например /page.php?param=param1¶m2=param2.

Еще один подход - использование массива $_SERVER["REQUEST_URI"]. Этот массив содержит информацию о запрашиваемом URL. С помощью функций для работы со строками в PHP можно легко получить необходимые данные и использовать их для генерации динамического контента.

Например, при обращении к URL /page/param/param2 можно использовать следующий код:

$url = $_SERVER["REQUEST_URI"];
$parts = explode("/", $url);
$page = $parts[1];
$param1 = $parts[2];
$param2 = $parts[3];

// дальнейшая обработка параметров и генерация контента

Таким образом, можно создавать динамические страницы на основе URL без использования символов "?", "&" и "=", а также индексировать их с помощью файла .htaccess и модуля mod_rewrite или обрабатывать URL непосредственно в коде с помощью массива $_SERVER["REQUEST_URI"]. Оба подхода имеют свои преимущества и недостатки, и выбор зависит от конкретной задачи и предпочтений разработчика.