Некоторые объяснения вашего текущего .htaccess:
Первые 2 строки задают условие для перезаписи URL, в вашем случае оно будет перезаписано, если указанная папка или файл в URL не найдены:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
Тогда правило перезаписи указывает, что переданный URL-адрес должен быть передан index.php
в виде строки запроса:
RewriteRule ^(.*)$ index.php?$1 [QSA,L]
Так что, если у вас нет другого.Правила htaccess, когда вы вызываете этот URL http://localhost/vas/profile/john/21
, вы не должны заканчиваться на profile.php
, потому что вы не указываете имя файла в URL.В итоге вы должны получить index.php
с вашим URL-адресом в качестве параметра.
Однако, если папки vas/profile/john/21/
действительно существуют и в них есть index.php, это файл, который будет вызываться, но потому чтоперезапись не будет применяться, у вас не будет строки запроса.
Возможно, здесь происходит что-то еще, другие правила .htacces, которые перенаправляют /profile/
на profile.php
или что-то, что объясняет, что вы правильно пришли кэтот файл.Дополнительная информация может быть полезна ..