2010-11-09 2 views
1

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

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

Это то, что я сейчас:

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

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

ответ

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

.

RewriteEngine on 
RewriteBase/
RewriteRule ^journal/(.+)$ http://example.com/blog/$1 [R=301,L] 
1

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

RewriteRule^журнал/([^ /] +) $/блог/$ 1

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