0

我试图从基于 htaccess 的重定向中排除一些 URI

我的 htaccess 指令如下

    <IfModule mod_rewrite.c>
      RewriteEngine on    
        #
        RewriteCond %{HTTP_HOST} ^(www\.)?domain1.com$ [NC]
        RewriteRule !=/test$ http://domain2.com [L,R=301,NC]
        #


          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteCond %{REQUEST_URI} !=/favicon.ico
          RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
   </IfModule>

这有什么不对?有什么建议吗?

我也尝试过不同的方式

<IfModule mod_rewrite.c>
  RewriteEngine on

    RewriteCond %{REQUEST_URI} !=/test
    RewriteRule (.*) http://domain2.com? [R=301,L]

  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

</IfModule>

在进行外部重定向时,排除 URI,测试无效。如果我正在进行内部重写,它工作正常。

4

1 回答 1

1

也许这有效:

Options +FollowSymlinks

<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_URI} !/test
# Add next line
RewriteCond %{REQUEST_URI} !index\.php [NC]
RewriteRule (.*) http://domain2.com? [R=301,L]

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
于 2013-05-31T20:05:14.213 回答