2012-02-13 1 views
0



Я хочу, чтобы перенаправить следующие301 Перенаправить index.php? Dir = в папку?

http://www.example.com/folder/index.php?dir=Dir1 
http://www.example.com/folder/index.php?dir=Dir1/Dir2 

в

http://www.example.com/folder/Dir1 
http://www.example.com/folder/Dir1/Dir2 

Я хочу "301 Redirect" это НЕ "Переписать", то есть я хочу "index.php? Реж =" ссылка to 301 перенаправить на структуру папок.

Просим совета?

ответ

1

Сделайте это в своем документеRoot .htaccess.

Options +FollowSymLinks 

RewriteEngine On 
RewriteBase/

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule .* - [L] 

RewriteCond %{QUERY_STRING} ^dir=(.*)$ [NC] 
RewriteRule^folder/%1? [L,R=301] 

RewriteRule ^folder/(.+)/? folder/index.php?dir=$1 [L,QSA] 
+0

Я думаю, вы неправильно поняли вопрос (или я не объяснил подробно). Я просто хочу, чтобы «index.php? Dir =» исчез. Dir1/dir2 был просто примером! В любом случае ваш код переходит в цикл перенаправления. – Umer

+0

@ пользователь1170540 сейчас попробуйте. Соблюдайте правило заказа или перезаписи. – ThinkingMonkey

+0

Цепь повторного перенаправления! Почему вы предлагаете «folder/index.php? Dir = Dir1/Dir2» выше! Dir1 и Dir2 - это просто виртуальная папка примера. Все, что я хочу, это все после того, как /index.php?dir= будет перенаправлен на/ – Umer

1
RewriteCond %{QUERY_STRING} ^dir=(.*)$ 
RewriteRule ^folder/index\.php$ folder/%1 [L,R=302] 

изменить на 301 раз работающий.

+0

Это не работает! Index.php? Dir = остается в URL! – Umer

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