Помогите настроить htaccess!

K1
На сайте с 14.09.2014
Offline
0
428

Помогите настроить htaccess!

1) Нужно сделать редирект 301 с site.ru/site на site.ru. Но при этом если будет адрес site.ru/site/login,

site.ru/site/register?type=free то редиректа и вырезания из url ( site ) происходить не должно

1) Нужно сделать редирект 301 с site.ru/main/?act=free на site.ru/site/register?type=free

Помогите пожалуйста, не могу сделать(((

J
На сайте с 20.02.2014
Offline
120
jkm
#1

Если правильно понял насчет вырезания из url папки site, то редиректить должно

site.ru/site => site.ru/

site.ru/site/page => site.ru/page

.htaccess в корне сайта


RewriteEngine On

RewriteCond %{REQUEST_URI} !^/site/login
RewriteCond %{REQUEST_URI}?%{QUERY_STRING} !^/site/register\?type=free$
RewriteRule ^site/?(.*) http://site.ru/$1 [L,R=301]

RewriteCond %{QUERY_STRING} ^act=free$
RewriteRule ^main/$ http://site.ru/site/register?type=free [L,R=301]
K1
На сайте с 14.09.2014
Offline
0
#2

нет, должно быть так, site.org/site редиректит на site.org

но должно переходить на site.org/site/register, когда я пишу правило для удаления site то получается такой url site.org//register. мне нужно чтобы в первом случае site убирался а если это подпапка тио не убирался

J
На сайте с 20.02.2014
Offline
120
jkm
#3

Тогда так


RewriteEngine On

RewriteRule ^site/?$ http://site.ru/ [L,R=301]

RewriteCond %{QUERY_STRING} ^act=free$
RewriteRule ^main/$ http://site.ru/site/register?type=free [L,R=301]
K1
На сайте с 14.09.2014
Offline
0
#4

Первый вариант работает, спасибо! А вот результат второго редиректит не туда, редиректит на

site.ru/?act=free вместо site.ru/site/register?type=free

J
На сайте с 20.02.2014
Offline
120
jkm
#5

Проверьте что правила скопированы верно. Сбросьте кеш браузера.

$ маркер конца строки и если в запросе после main/?act=free идут еще какие-либо символы то правило не сработает.

Тогда возможно следует заменить ^act=free$ на ^act=free

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий