2017-02-14 6 views
1

Ich habe .htaccess aktiviert ist, und unten ist, was ich in bisher geschrieben habe.Rewrite-Seiten mit .htaccess

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

ich sauber url auf meine Seiten zum Beispiel bewerben möchte, würde ich gerne

terms.php to be rewritten as /terms-and-conditions 
privacy.php /privacy 
thanks.php/thank-you 

Antwort

1

Dies ist probbly, was Sie suchen, wenn Sie ihn für Ihre Nutzung optimieren müssen können:

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/?([^/]+)$ $1.php [L] 

Diese zweite Regel kann ohne Änderung in der Hostkonfiguration des echten http-Servers oder in dynamischen Konfigurationsdateien (.htaccess Style-Dateien) verwendet werden.

Offensichtlich muss das Rewriting-Modul aktiviert werden.


Das letzte Beispiel Sie geben, thanks.php/thank-you kann nicht auf diese Weise umgesetzt werden, da „Dankes-“ ist nicht gleich „Danke“, aber ich nehme an, dass ein Tippfehler ist. Wenn Sie wirklich, dass die Abbildung benötigen, dann müssen Sie eine spezielle Regel implementieren für nur, dass einzelne URI vor gesetzt, die letzte Regel über:

RewriteRule ^/?thank-you$ thanks.php [L] 

Und ein allgemeiner Hinweis: Sie immer auf Platz vorziehen sollte solche Regeln innerhalb der Host-Konfiguration des http-Servers, anstatt dynamische Konfigurationsdateien (".htaccess") zu verwenden. Diese Dateien sind notorisch fehleranfällig, schwer zu debuggen und verlangsamen den Server wirklich. Sie werden nur als letzte Option für Situationen angeboten, in denen Sie keine Kontrolle über die Host-Konfiguration haben (lesen Sie: wirklich günstige Hosting-Service-Provider) oder wenn Sie eine Anwendung haben, die eigene Schreibregeln schreibt (was ein offensichtlicher Sicherheitsalarm ist)).

2

können Sie versuchen, mit folgenden:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^terms-and-conditions terms.php 
RewriteRule ^privacy privacy.php 
RewriteRule ^thank-you thanks.php 
+0

Danke. Wie könnte ich das auch in umgekehrter Reihenfolge tun, wie zum Beispiel das Schreiben von /privacy.php wird als/privacy umgeschrieben. – John