OK, ich bemerke gerade, dass es dir hier nicht mehr um den internen Rewrite geht, welcher die sprechende URL erst ermöglicht, sondern um die Weiterleitung auf die sprechende URL. Ich würde doch aber erst einmal sicherstellen, dass die sprechende URL an sich funktioniert, d.h. den gewünschten Inhalt anzeigt.
Also sobald https://example.com/verzeichnis/xyz den Inhalt von https://example.com/verzeichnis/seite.php?seite=xyz anzeigt, würde ich mich in einem zweiten (optionalen) Schritt darum kümmern, dass https://example.com/verzeichnis/seite.php?seite=xyz auf https://example.com/verzeichnis/xyz weitergeleitet wird. Ist diese Voraussetzung denn gegeben, oder wird immer noch ein Fehler 404 angezeigt, so wie du weiter oben geschrieben hattest:
Wenn ich im Browser ../verzeichnis/xyz eingebe, bekomme ich die Fehlerseite-404.
Ein Test mit dem Code aus meinem letzten Post funktioniert auf einem lokalen Test-System übrigens einwandfrei. Es kann aber natürlich sein, dass die .htaccess Datei des darüberliegenden Verzeichnisses oder die seite.php mit einem PHP-Redirect querschießt.
Zu der Weiterleitung:
.htaccess:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /users\.php\?name=([^\&\ ]+)
RewriteRule ^/?users\.php$ /users/%1? [L,R=301]
Quelle: morioh.com
Was müsste ich ändern, um dies in einem Unterverzeichnis zu verwenden? Funktioniert in der root einwandfrei.
Den Verzeichnispfad auch im Muster einbauen:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /users/users\.php\?name=([^\&\ ]+)
RewriteRule ^/?users/users\.php$ /users/%1? [L,R=301]
... oder wenn du eine RewriteBase-Angabe drin hast, auf beiden Seiten der RewriteRule weglassen:
RewriteBase /users/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /users/users\.php\?name=([^\&\ ]+)
RewriteRule ^/?users\.php$ /%1? [L,R=301]