it-swarm.com.de

.htaccess-Regeln zum Umschreiben von URLs auf die Front-End-Seite?

Ich füge meiner Site unter example.com/app eine neue Anwendung hinzu. Ich möchte, dass Aufrufe unter dieser URL immer myapp.php öffnen.

Z.B.

example.com/app -> example.com/app/myapp.php and
example.com/app/ -> example.com/app/myapp.php

Wie lauten die korrekten Umschreibregeln in der .htaccess-Datei?

Ich habe:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /app/
RewriteRule ^myapp\.php$ - [L]
RewriteRule ^myapp.php$ - [L]
RewriteRule . - [L]
</IfModule>

... basierend auf dem, was das Wordpress Frontend macht. Aber alles, was ich unter example.com/app sehe, ist ein Verzeichnis von Dateien. :(

(Ich füge diese Änderungen oben in meine .htaccess-Datei ein).

Irgendwelche Ideen?

Update Was hat tatsächlich funktioniert:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/app(/.*)?$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /app/myapp.php [L]

Das ist gut, weil:

  1. Explizite oder implizite Aufrufe von app/myapp.php funktionieren.
  2. example.com/app leitet zu app/myapp.php weiter
  3. example.com/app/ leitet zu app/myapp.php weiter
  4. example.com/app/subfunction leitet zu app/myapp.php weiter
  5. Alle anderen Aufrufe von example.com/otherstuff bleiben unberührt.

Punkt 4 ist Wordpress-like Front Controller Pattern Verhalten.

Ich denke diese Regel

RewriteCond %{REQUEST_URI} ^/app.*$ [NC]

muss verfeinert werden, da es/app-oh-my-goodness etc. auch durch lässt. Danke für die Antworten.

1
Dizzley

DirectoryIndex klingt eher nach dem, was Sie wollen. (Wenn mod_dir installiert ist)

DirectoryIndex myapp.php

Dokumentation: http://httpd.Apache.org/docs/2.0/mod/mod_dir.html

Oder wenn Sie noch mod_rewrite wollen, sollte dies funktionieren:

RewriteRule app(/*)$ http://example.com/app/myapp.php [L]
1
J.Romero

Versuchen

RewriteRule ^app/?$ app/myapp.php [L]
1
Zimbabao