Автоматическая перезапись URL - PullRequest
0 голосов
/ 10 августа 2010

Я создал файл .htaccess.

Исходный URL-адрес:

http://example.com/folder/page.php?page=1&ipp=All&link=view_link

Перенаправлено:

http://example.com/folder/page/1/All/link.html

Перенаправление работает правильно. Но, теперь проблема в том,

, он будет перенаправлен, только если я дам переписанный URL-адрес вручную.Но это должно происходить только автоматически.

Мое требование: если кто-нибудь напечатает "page.php? Page = 1 & ipp = All & link = view-link", то автоматически преобразует /page/1/All/link.html

1 Ответ

0 голосов
/ 10 августа 2010

Мне все еще неясно, что вы хотите, основываясь на вашем вопросе, но я сделаю удар в темноте и предположу, что вы хотели перенаправить пользователя с этих "уродливых" URL-адресов в более чистый формат.Если это так, это должно сработать.

RewriteCond %{THE_REQUEST}  ^[A-Z]+\s/[^/]+/.*\.php
RewriteCond %{QUERY_STRING} page=([^&]+)
RewriteRule ^([^/]+/[^/]+)\.php /$1/%1 [C]
RewriteCond %{QUERY_STRING} ipp=([^&]+)
RewriteRule .* $0/%1 [C]
RewriteCond %{QUERY_STRING} link=view(_|-)([^&]+)
RewriteRule .* $0/%2.html? [R=301,L]

Что перенаправит пользователей, которые переходят на folder/page.php?page=1&ipp=All&link=view-link (или это /folder/page.php?page=1&ipp=All&link=view_link? Ваш вопрос имеет оба, поэтому я позволю ему принять либо) на folder/page/1/All/link.html, независимо от того, что является компонентом этого исходного URL.

...