Wie kann ich die Rewrite-Regel in htaccess nur für die Startseite hinzufügen?

476
PavelKozlov

Ich habe ein Problem mit Apache.

Meine Website hat jetzt folgende Regeln:

RewriteCond % text/html [NC] RewriteCond % ^mysqite\.com [NC] RewriteRule .* path/to/html/my.html [L] 

Ich brauche nur Regeln für die Startseite, um sie an eine andere HTML-Datei weiterzuleiten. Wie kann ich das machen?

Die alte Regel muss für andere Seiten der Site funktionieren.

Ich versuche das, aber es funktioniert nicht:

RewriteCond % text/html [NC] RewriteCond % ^mysqite\.com$ [NC] RewriteRule ^$ path/to/html/my-new.html [L]  RewriteCond % text/html [NC] RewriteCond % ^mysqite\.com [NC] RewriteRule ^/(.*) path/to/html/my.html [L] 
1

1 Antwort auf die Frage

1
user2528260

Wenn Sie die Standard-Indexseite ändern möchten, damit my.html beim Öffnen von http://mysqite.com my.html erscheint, können Sie dies in der .htaccess-Datei versuchen:

DirectoryIndex my.html

Es ist kein Umschreiben erforderlich.


Bearbeiten:

Entschuldigung, ich habe Ihren Standpunkt zu den bestehenden Regeln verpasst. Sie können die Regeln wie folgt schreiben:

RewriteRule ^ $ /path/to/html/my-new.html [L]

RewriteRule! ^ / Pfad / zu / html / my-new.html $ Pfad / zu / html / my.html [L]

Sie sagen also im Grunde, dass Sie die Anfragen mit dem Hostnamen nur an my-new.html und alles andere an my.html umleiten. Die zweite Zeile schließt die my-new.html-Anforderung explizit aus. Wenn es nicht explizit angegeben wird, wird beim Ausführen des Überschreibens der ersten Zeile die zweite Zeile ausgelöst, und schließlich wird alles zu my.html umgeleitet.

Es funktioniert, okay, danke, aber wie kann ich auf andere Seiten schreiben? PavelKozlov vor 6 Jahren 0
Entschuldigung, ich habe einen Teil Ihrer Frage verpasst. Ich habe die Antwort oben geändert, bitte überprüfen. user2528260 vor 6 Jahren 0
Danke! Es klappt!!! PavelKozlov vor 6 Jahren 0