Apache Redirect не работает… - PullRequest
1 голос
/ 09 ноября 2010

Время от времени мне приходится возиться с mod_rewrite или, скорее, с редиректом Apache. Теперь у меня есть простая задача, которая сводит меня с ума, потому что я не могу заставить ее работать:

Все, что было под /journal/(.*), теперь под /blog/(.*).

Вот что у меня сейчас:

RewriteEngine on
RewriteBase /
RewriteRule ^/journal/([^/]+)$ /blog/$1

Если это имеет значение: это установка drupal.

Ответы [ 2 ]

2 голосов
/ 09 ноября 2010
  • Drupal имеет существующие правила перезаписи в .htaccess. Если вы поместите свои правила вверху файла, правила Drupal могут их переопределить.
  • Не думаю, что вы хотите, чтобы в вашем правиле был /.
  • Если вы ожидаете, что правило перенаправит людей, которые используют старый /blog/ URL, вы ошибаетесь. Если это то, что вы пытаетесь сделать, вам нужно выполнить перенаправление, например:

.

RewriteEngine on
RewriteBase /
RewriteRule ^journal/(.+)$ http://example.com/blog/$1 [R=301,L]
1 голос
/ 09 ноября 2010

так как ваша база перезаписи - / я думаю, вы можете опустить / перед журналом.поэтому попробуйте

RewriteRule ^ journal / ([^ /] +) $ / blog / $ 1

Также, если у вас есть какие-либо другие правила, вы можете добавить [L] в конец операторачтобы не происходило никаких других переписываний.

...