.htaccess - 500 Внутренняя ошибка сервера

1

Я хочу перенаправить пользователя на основе своего пользовательского агента на определенные веб-сайты.

Прямо сейчас мой файл.htaccess выглядит следующим образом:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>


# END WordPress
RewriteCond %{HTTP_USER_AGENT} opera
RewriteCond %{QUERY_STRING} articleid=(?:[0-9]{1,3}|1000)

<If "%{QUERY_STRING} == 'articleid=001'">
RewriteRule ^$ http://m.example.com/ [L,R=302]
</If>
<ElseIf "%{QUERY_STRING} == 'articleid=002'">
RewriteRule ^$ http://m.example2.com/ [L,R=302]
</ElseIf>
<ElseIf "%{QUERY_STRING} == 'articleid=003'">
RewriteRule ^$ http://m.example3.com/ [L,R=302]
</ElseIf>
<ElseIf "%{QUERY_STRING} == 'articleid=004'">
RewriteRule ^$ http://m.example4.com/ [L,R=302]
</ElseIf>
etc...

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

Лучшие рекорды, продажа

  • 0
    Какая версия Apache вы используете?
  • 0
    apache / 2.2.31 (Unix) mod_ssl / 2.2.31 на centos 6.7 Я только что прочитал, что elseif и т. д. доступен только из 2.4. Существует ли версия apache 2.4 для centos 6.7?
Показать ещё 4 комментария
Теги:
.htaccess

1 ответ

2
Лучший ответ

Попробуйте изменить эти правила на традиционный синтаксис правила mod_rewrite и сохранить переадресацию до правила WP по умолчанию:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_USER_AGENT} opera
RewriteCond %{QUERY_STRING} (^|&)articleid=articleid=001(&|$) [NC]
RewriteRule ^$ http://m.example.com/? [L,R=302]

RewriteCond %{HTTP_USER_AGENT} opera
RewriteCond %{QUERY_STRING} (^|&)articleid=articleid=002(&|$) [NC]
RewriteRule ^$ http://m.example2.com/? [L,R=302]

RewriteCond %{HTTP_USER_AGENT} opera
RewriteCond %{QUERY_STRING} (^|&)articleid=articleid=003(&|$) [NC]
RewriteRule ^$ http://m.example3.com/? [L,R=302]

RewriteCond %{HTTP_USER_AGENT} opera
RewriteCond %{QUERY_STRING} (^|&)articleid=articleid=004(&|$) [NC]
RewriteRule ^$ http://m.example4.com/? [L,R=302]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

</IfModule>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню