Я перенаправляю, но теперь я хочу сохранить имя файла, чтобы он напоминал каталог.
Я бы добавил строку запроса с именем файла, чтобы добавить его к URL перенаправления, но это не имеет особого смысла.
например
RewriteCond %{THE_REQUEST} \ /+profile\.php\?user=([^&]+)&uid=([^&\ ]+)
RewriteRule ^ /%1/%2? [L,R=301]
внутренний
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ profile.php?user=$1&uid=$2 [L,QSA]
это перенаправляет на www.site.com/username/uid
Я хочу, чтобы это было www.site.com/profile/username/uid
Я хотел бы добавить третью строку запроса, например www.site.com/profile.php?user=username&UID = 45&профиль, но это не имеет особого смысла.
Вы можете немного изменить правило перезаписи.
RewriteCond %{THE_REQUEST} \ /+profile\.php\?user=([^&]+)&uid=([^&\ ]+)
RewriteRule ^ /profile/%1/%2? [L,R=301]
И внутренне.
RewriteRule ^profile/([^/]+)/([^/]+)$ profile.php?user=$1&uid=$2 [L,QSA]
Других решений пока нет …