.htaccess 规则导致内部服务器错误但它们看起来正确

.htaccess rules causing internal server error yet they look right

我的服务器。 htaccess 规则如下所示:

RewriteEngine On
# first redirect
RewriteCond %{HTTP_HOST} ^www\.testing\.examplewebsite\.co\.uk$ [OR]
RewriteCond %{HTTP_HOST} ^testing\.examplewebsite\.co\uk$ [NC] 
RewriteRule ^(.*)$ https://testing.examplewebsite.com/ [L,R=301]

# second redirect
RewriteCond %{HTTP_HOST} ^www\.test\.examplewebsite\.co\.uk$ [OR]
RewriteCond %{HTTP_HOST} ^test\.examplewebsite\.co\uk$ [NC] 
RewriteRule ^(.*)$ https://test.examplewebsite.com/ [L,R=301]

# Main redirect
RewriteCond %{HTTP_HOST} ^www\.examplewebsite\.co\.uk$ [OR]
RewriteCond %{HTTP_HOST} ^examplewebsite\.co\uk$ [NC] 
RewriteRule ^(.*)$ https://examplewebsite.com/ [L,R=301]

# All subdomains that don't exist redirect
RewriteCond %{HTTP_HOST} ^(.+)\.examplewebsite\.co\.uk$   [NC]
RewriteRule ^ https://www.examplewebsite.com/  [L,R]

但由于某种原因none它会导致服务器内部错误,我也不确定它们是否都是 100% 正确的。像最后一条规则一样,是否也应该在开头使用 ^(.*)$ 并在结尾使用 </code></p> <p>标志也一样,不太确定它们是否都正确。</p> <p>基本上我想做的是:</p> <ul> <li><code>testing.examplewebsite.co.ukwww.testing.examplewebsite.co.uk 转到 https://testing.examplewebsite.com

  • test.examplewebsite.co.ukwww.test.examplewebsite.co.uk 转到 https://test.examplewebsite.com
  • 像上面的一些其他子域
  • examplewebsite.co.ukwww.examplewebsite.co.uk 转到 https://examplewebsite.com
  • 将所有使用的域名,例如Whosebug.examplewebsite.co.ukwww.Whosebug.examplewebsite.co.uk都发送到https://examplewebsite.com
  • 您的所有条件都有错字。您的行中的第二个条件在 uk 之前缺少 .。 ^testing.examplewebsite.co.uk$[NC]

    RewriteEngine On
    # first redirect
    RewriteCond %{HTTP_HOST} ^www\.testing\.examplewebsite\.co\.uk$ [OR]
    RewriteCond %{HTTP_HOST} ^testing\.examplewebsite\.co\.uk$ [NC] 
    RewriteRule ^(.*)$ https://testing.examplewebsite.com/ [L,R=301]
    
    # second redirect
    RewriteCond %{HTTP_HOST} ^www\.test\.examplewebsite\.co\.uk$ [OR]
    RewriteCond %{HTTP_HOST} ^test\.examplewebsite\.co\.uk$ [NC] 
    RewriteRule ^(.*)$ https://test.examplewebsite.com/ [L,R=301]
    
    # Main redirect
    RewriteCond %{HTTP_HOST} ^www\.examplewebsite\.co\.uk$ [OR]
    RewriteCond %{HTTP_HOST} ^examplewebsite\.co\.uk$ [NC] 
    RewriteRule ^(.*)$ https://examplewebsite.com/ [L,R=301]
    
    # All subdomains that don't exist redirect
    RewriteCond %{HTTP_HOST} ^(.+)\.examplewebsite\.co\.uk$   [NC]
    RewriteRule ^ https://www.examplewebsite.com/  [L,R]