2012-06-15 4 views
0

Я изменил свою CMS и вам нужно перенаправить некоторые старые URL-адреса.Ошибки сервера с правилами перезаписи

То, что я хотел бы сделать, это:

  1. удалить "блог/архивы"
  2. заменить подчёркивания прочерками
  3. заменить ".html" с лидирующий слэш

Старая ссылка:

http://example.com/blog/archives/the_post_title.html 

Новая ссылка

http://example.com/the-post-title/ 

Я написал, и он работал в какой-то момент, но теперь я получаю 500 ошибок.

RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [N] #Replace "_" with "-" loop until one left 
RewriteRule ^([^_]*)_([^_]*)$ /$1-$2  #Replace the last underscore 
RewriteRule ^(.*?).html$ /$1/ [L,R=301]  #Strip the ".html" and use the filename as the url, note this as "permanently moved" (301) 

Любая идея, почему я получаю ошибки сервера?

ответ

0

Вы можете попробовать заменить, что с этим:

RewriteRule ^(.*)_(.*)$ /$1-$2 
RewriteCond %{REQUEST_URI} !_ 
RewriteRule ^blog/archive/(.*).html$ /$1/ [L,R=301] 
+0

Спасибо Джон. Это разрешило ошибку 500, но теперь я получаю 404. Если вручную внести изменения в URL-адрес, я получаю новое сообщение, так что это не что-то с этим. Что касается первого req, эти старые сообщения были из старой CMS, которая генерировала HTML-файлы, поэтому я получил эти правила в файле .htaccess в каталоге/blog/archives - таким образом, при возврате URL-адреса в root (/ $ 1 /) это позаботится об этом. –

+0

С каким URL-адресом вы перенаправляетесь? –

+0

URL-адрес не изменяется вообще. –

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