2013-06-27 3 views
2

Я ищу решение, в котором я могу определить оператор Muliple матча Whitin в одном операторе RewriteCond,Htaccess ИЛИ условие RewriteCond

Сценария я хочу, чтобы перенаправить на главную страницу, если какие-либо из этой строки приходит URL-адрес: /it/, /de/, /fr/

Я пытался это написал так:

  1. Это бросает SERVER ERROR:

    RewriteCond ^(/it/ | /de/ | /fr/) 
    RewriteRule 'myhomepageurl' 
    
  2. Я также попробовал этот способ тоже:

    RewriteCond /it/ [OR] 
    RewriteCond /de/ [OR] 
    RewriteCond /fr/ [OR] 
    RewriteRule 'myhomepageurl' 
    

Это дает неожиданные результаты страница Loding бесконечна и админ был заблокирован. Итак, я решил, что так:

RewriteCond /it/ 
RewriteRule 'myhomepageurl' 

RewriteCond /de/ 
RewriteRule 'myhomepageurl' 

RewriteCond /fr/ 
RewriteRule 'myhomepageurl' 

Мне просто интересно узнать о единственном заявлении, которое может сделать это одним выстрелом.

Благодаря

ответ

3

Попробуйте это:

RewriteCond %{REQUEST_URI} /(en|de|it)/ 
RewriteRule .* myhomepageurl [R=301,L] 
6

Ваш первый пример не удается из-за пространств; лучше регулярное выражение будет что-то вроде

RewriteCond ^/(it|de|fr)/ 
RewriteRule 'myhomepageurl' 

В любом случае, вы должны прочитать When Not To Use Rewrite и использовать одну из более простых форм предложил там, например,

RedirectMatch /(it|de|fr)/ /myhomepageurl