Очень нужна помощь с правилом в mod_rewrite

A
На сайте с 10.01.2005
Offline
106
726

Есть адрес вида /blog/2006/11/2/article/)

Обращаю внимание -в конце круглая скобка, если бы не она, как-нибудь справился бы.

Проясните, пожалуйста, что написать в htaccess, чтобы с этого адреса с круглой скобкой (%27)

сделать 301 редирект на /blog/2006/11/2/article/

Бился, бился, но туплю (:

Заранее спасибо

Сайты для людей - не выдумка, а быль. Если считать архитекторов и дизайнеров людьми:)Целевая реклама для целевой группы.
skAmZ
На сайте с 04.09.2009
Offline
122
#1

Смотря что конкретно вам надо, как вариант

RewriteRule ^blog/([0-9]+)/([0-9]+)/([0-9]+)/article(.*)$ /123.php [L]

D
На сайте с 25.12.2008
Offline
12
#2
skAmZ:
Смотря что конкретно вам надо, как вариант
RewriteRule ^blog/([0-9]+)/([0-9]+)/([0-9]+)/article(.*)$ /123.php [L]

А где тут круглая скобка?

skAmZ
На сайте с 04.09.2009
Offline
122
#3

".*" - это всякий шлак заменяет, в том числе круглую скобку.

Если хотите именно скобку, то так:

RewriteRule ^blog/([0-9]+)/([0-9]+)/([0-9]+)/article/[)]? /123.php [L]

или так

RewriteRule ^blog/([0-9]+)/([0-9]+)/([0-9]+)/article\)? /123.php [L]

Как больше нравится)

A
На сайте с 10.01.2005
Offline
106
#4

dVital и skAmZ, спасибо, но у меня что-то это не работает, скорее всего, потому что на самом деле адрес сложнее: /blog/2006/11/2/article-pro-sobak/)

А нужно это, чтобы группу битых внешних ссылок превратить в рабочие:)

skAmZ
На сайте с 04.09.2009
Offline
122
#5

amph, оно понятно, но советую все-таки вывести 404, ибо разведение копий одной страницы до добра не доведут.

Можно на главную кидать

ErrorDocument 404 /
A
На сайте с 10.01.2005
Offline
106
#6

Так я и не хочу разводить, я хочу сделать редирект через модреврайт:) Только путаюсь(:, напишите мне, плиз, полностью с адресом /blog/2006/11/2/article-pro-sobak/)

skAmZ
На сайте с 04.09.2009
Offline
122
#7

amph, если делать, как хотите, это путь к копиям. Ибо при правильном варианте код будет возвращаться 200, и как бы отдельная страница.

Что вы просите

RewriteRule ^([a-z]+)/([0-9]+)/([0-9]+)/([0-9]+)/([a-z0-9\-])(.*)? $1/$2/$3/$4/ [NC,L]

P.S. По хорошему лучше так: RewriteRule ^([a-z]+)/([0-9]+)/([0-9]+)/([0-9]+)/([a-z0-9\-])(.*)? /$1/$2/$3/$4/ [NC,L,R=301]

Пользователям разницы ни какой, а для поисковиков хорошо

A
На сайте с 10.01.2005
Offline
106
#8

Спасибо :) Я вообще-то хочу [R=301,L] использовать, но уже не соображаю, завтра попробую добить, если девушки дозволят :)

skAmZ
На сайте с 04.09.2009
Offline
122
#9

amph, про NC не забудьте ;)

A
На сайте с 10.01.2005
Offline
106
#10

Спасибо :)

amph добавил 08.03.2010 в 00:42

Убрал ?, так как из-за него получается бесконечный цикл, и теперь все работает, как часы :)

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