301 Перенаправление с .htaccess - PullRequest
1 голос
/ 12 февраля 2011
Options +FollowSymlinks
RewriteEngine on

RewriteBase /
RewriteCond %{REQUEST_URI} !^category?$
RewriteRule ([^/]+)/([^/]+)/([^/]+)/$ http://domain.com/$3/ [L,R=permanent]

В настоящее время у меня есть следующее перенаправление, и оно работает как шарм. Теперь я хочу убедиться, что ссылка не начинается с / category /, поэтому я вставил условие. К сожалению, это не похоже на работу. Пожалуйста помоги. Благодаря.

Другой вопрос, как сделать так, чтобы конечная постоянная ссылка между косой чертой была выбрана только для перенаправления. Например, у меня могут быть ссылки типа http://domain.com/downloads/26-fine-wallpapers/ и http://domain.com/downloads/icons/35-nice-icons/, и я хочу, чтобы ссылки, подобные этим, были перенаправлены на http://newdomain.com/35-nice-icons/ и http://newdomain.com/26-fine-wallpapers/

На самом деле я использую WordPress.

Ответы [ 2 ]

2 голосов
/ 12 февраля 2011

Согласно вашему описанию у вас есть только два сегмента пути.Таким образом, ваш шаблон должен быть:

RewriteRule ^([^/]+)/([^/]+)/$ http://example.com/$3/ [L,R=permanent]

И чтобы исключить /category/…, вы можете проверить путь URI запроса в REQUEST_URI :

RewriteCond %{REQUEST_URI} !^/category/
RewriteRule ^([^/]+)/([^/]+)/$ http://example.com/$3/ [L,R=permanent]

Илипроверьте соответствующее значение первой группы:

RewriteCond $1 !=category
RewriteRule ^([^/]+)/([^/]+)/$ http://example.com/$3/ [L,R=permanent]
0 голосов
/ 12 февраля 2011

Я думаю, вам нужен префикс /:

RewriteCond %{REQUEST_URI} !^/category?$
...