2014-10-09 2 views
1

У меня есть сайт, который использует следующий формат ссылок:% {REQUEST_URI} не похоже на работу с index.php

http://www.website.com/section1/index.php 
http://www.website.com/section2/index.php 
http://www.website.com/section3/index.php 
http://www.website.com/section1/section4/index.php 

То, что я пытался сделать, это избавиться от последней части «index.php», используя следующие директивы .htaccess:

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^/index\.php$ 
RewriteRule (.*) http://www.google.com [R=301,NC,L] 

конечно, www.google.com только для целей тестирования, однако в приведенном ниже примере не работает. Что с этим не так? Вторая часть вопроса - что я могу заменить на www.google.com, если я хочу переписать на http://www.website.com/section1?

Спасибо!

ответ

1

Это не работает, потому что ваше регулярное выражение неверное. RewriteCond %{REQUEST_URI} ^/index\.php$ ожидает %{REQUEST_URI} будет /index.php, но у вас есть /section1/index.php.

Правильная версия будет:

RewriteEngine on 

RewriteCond %{REQUEST_URI} /index\.php$ 
RewriteRule (.*) http://www.google.com [R=301,NC,L] 

Или даже:

RewriteEngine on 

RewriteRule /index\.php$ http://www.google.com [R=301,NC,L] 
+0

Как переписать его в/section1/вместо www.google.com? – user1029829

+0

Будет ли это лучшим решением? RewriteRule^(. *)/Index \ .php $/$ 1 [R = 301, NC, L] – user1029829

+0

Да, конечно, это должно хорошо работать. – anubhava

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