2015-03-04 2 views
0

Я хочу, чтобы перенаправить mypage.de/48153 к mypage.de/apo/48153, но если добавить это правило:Перенаправление только если путь в корень (корень Перепишите Condition)

RedirectMatch 301 /48153 /apo/#/48153 

Я думаю, что это будет перейдите в бесконечный цикл, потому что правило также соответствует цели.

Я попытался это:

# Rewrite sites to angular views (only if root) 
RewriteCond %{REQUEST_URI} !(apo) [NC] 
RedirectMatch 301 /48153 /apo/#/48153 

, чтобы предотвратить с помощью правила после редиректа. Он изменил поведение, в котором нет внутренней ошибки сервера. Но он разрушает весь мой код AngularJs.

И где разница:

RewriteEngine On 
RewriteRule ^48153$ /apo/#/48153 [R=301,L] 

Если я изменить перенаправлять например 48152 -> 48153 все работает, поэтому я предполагаю, что он перенаправляет правильно.

+0

'RewriteRule^(48153) $/apo/#/$ 1 [R = 301, L, NE]' должен работать. – anubhava

ответ

0
# Rewrite ec sites to angular views (only if root) 
RewriteCond %{REQUEST_URI} !(apo) [NC] 
RewriteRule ^48153$ /apo/#/48153 [R=301,NE,L] 

Это сделало трюк для меня. NE предотвращает экранирование #. Думаю, RewriteCond не нужен, потому что Rewriterule использует тег L.