2015-05-06 2 views
1

Мне нужна помощь, чтобы понять, почему мой код больше не работает.Переадресация 301 кода не работает

Оригинал Автор: How to redirect multiple similar URLs with one query?

Пожалуйста, смотрите оригинальный вопрос.

Кажется, что код перестает работать для меня. Это было хорошо в течение длительного времени, и теперь это вызывает ошибки. У меня есть этот код:

RedirectMatch 301 ^/([^-]+)-([^-]+)-([^-]{2})\.html$ /$1-in-$2-$3.html 
RedirectMatch 301 ^/([^-]+)-([^-]+)-([^-]+)-([^-]{2})\.html$ /$1-$2-in-$3-$4.html 

URL Переключить я хотел:

domain.com/music-classes-dallas-tx.html к domain.com/music-classes-in-dallas-tx.html

Кто-нибудь знает, почему это может уже перестал работать? Что я могу изменить, чтобы заставить его работать снова?

+0

вы пробовали использовать [ 'mod_rewrite'] (http://httpd.apache.org/docs/current/mod/mod_rewrite.html)? –

+0

Извините, у вас была неправильная ссылка на исходную тему в моем сообщении. Я обновил его. Исходная статья: http://stackoverflow.com/questions/13598802/how-to-redirect-multiple-similar-urls-with-one-query – user1858780

+0

Майк, я не пробовал. Я не уверен, как это будет выглядеть. Помните, что я использую код, и я могу дать ему шанс? – user1858780

ответ

0

Обновление: Данная методика неверна из-за различий в именах файлов. См. Комментарий ниже.


Использование mod_rewrite, вы можете использовать его в вашем .htaccess файле:

RewriteEngine on 

# Condition: First, check that `-in-` is not contained in the request URI 
RewriteCond %{REQUEST_URI} !-in- [NC] 

# Rule: If it isn't, redirect the old page to the new one 
RewriteRule ^([a-z-]+)-([a-z]+)-([a-z]{2})\.html$ /$1-in-$2-$3.html [NC,L,R=301] 

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

RewriteCond %{REQUEST_FILENAME} -f 
+0

Спасибо, Майк! К сожалению, он не перенаправляется. Ссылка у меня есть: domain.com/music-classes-death-valley-ca.html ... это не переводит меня на домен.com/music-classes-in-death-valley-ca.html – user1858780

+0

Это должно быть. Тесты работают на моей стороне. Что-нибудь еще в вашем файле .htaccess? –

+0

Я действительно вижу, что моя методология неверна ... Дело в том, что некоторые пути будут иметь что-то-что-то-tx', а у других будет 'something-tx'. Таким образом, трудно точно определить, куда должен идти '-in -' ... С учетом сказанного, я думаю, вам было бы лучше придерживаться старых шаблонов URI, тем более, что такие ключевые слова, как' in', не являются признанных поисковыми системами (насколько мне известно). –

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