2016-05-20 3 views
1

Я хочу, чтобы перенаправить из https://*****.com/lp/index.html в https://*****.com/lp/301 редирект оленья кожа работа в HTAccess

поэтому я ставлю эти две строки в .htaccess

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

и теперь весь редирект блок в моем файле Htaccess, как это:

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] 

но index.html перенаправление не работает.

Кто-нибудь знает, почему? Спасибо.

ответ

1

Используйте это так:

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] 

Очистить кэш браузера и повторите тест.

+0

Спасибо, я изменил код на код ниже '# удалить /lp/index.html ', он работал. Но мой код (первые три строки, я имею в виду код index.php remove) работал хорошо, поэтому я пишу почти тот же самый для удаления index.html, это не удалось. Я не знаю, почему ... – chii

+0

Ваше правило не сработало, потому что 'RewriteRule ^/lp/index \ .html $' имеет ведущую косую черту перед 'lp', которая недоступна в htaccess. Так что это должно быть: 'RewriteRule^lp/index \ .html $ ...' – anubhava

Смежные вопросы