2016-05-20 11 views
1

ich von https://*****.com/lp/index.html zu https://*****.com/lp/301-Weiterleitung doesnot Arbeit in .htaccess

so habe ich diese beide Linie in .htaccess

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /lp/index\.html\ HTTP/ 
RewriteRule ^/lp/index\.html$ /lp/ [R=301,L] 

und jetzt der ganzen Redirect Block in meiner .htaccess Datei umleiten will, ist wie dies:

RewriteEngine on 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.php\ HTTP/ 
RewriteRule ^(([^/]+/)*)index\.php$ /$1 [R=301,L] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /lp/index\.html\ HTTP/ 
RewriteRule ^/lp/index\.html$ /lp/ [R=301,L] 

aber die index.html Weiterleitung funktioniert nicht.

Weiß jemand warum? Vielen Dank.

Antwort

1

es wie folgt verwendet:

RewriteEngine On 

# remove index.php 
RewriteCond %{THE_REQUEST} /index\.php [NC] 
RewriteRule ^(.*)index\.php$ /$1 [L,R=301,NC,NE] 

# remove /lp/index.html 
RewriteCond %{THE_REQUEST} \s/+lp/index\.html [NC] 
RewriteRule^/lp/ [L,R=301,NE] 

löschen Browser-Cache und erneut testen.

+0

Danke, ich meinen Code, um den Code geändert unter '# entfernen /lp/index.html ', es funktionierte. Aber mein Code (die ersten drei Zeilen, ich meine den index.php remove code) hat gut funktioniert, also schreibe ich den fast gleichen zum entfernen von index.html, es ist fehlgeschlagen. Ich weiß nicht warum ... – chii

+0

Ihre Regel hat nicht funktioniert, weil 'RewriteRule ^/lp/index \ .html $' einen führenden Schrägstrich vor 'lp' hat, der in htaccess nicht verfügbar ist. Also muss es sein: 'RewriteRule^lp/index \ .html $ ...' – anubhava