无限重定向循环由htaccess规则

时间:2012-12-06 03:09:52

标签: apache .htaccess mod-rewrite

我的htaccess文件

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_URI} ^/apm/.* [NC]
RewriteRule apm/(.*) https://someothersite.net/~mc/apm/$1 [R=301,L]

RewriteCond %{HTTP_REFERER} ^(.*)mydomain1\.com [NC]
RewriteRule .* http://mydomain2.net/_APM/dist [R=301,L]

我想做的是: 1。 如果用户转到mydomain2.net/apm/重定向到https://someothersite.net/~mc/apm/ ..

  1. some1从mydomain1.com到mydomain2.net(任何页面),然后重定向到http://mydomain2.net/_APM/dist
  2. 第一个工作正常但第二个工作无限循环。请任何想法。

    并且htaccess文件位于mydomain2.net

2 个答案:

答案 0 :(得分:0)

您是否可以访问网站配置文件? (在linux下:“/ etc / apache2 / sites-available / site”)

您应该使用Apache VirtualHost。这是为了那个。

你会得到像

这样的东西
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.domain.tld
    ServerAlias domain.tld *.domain.tld
    DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *:80>
    ServerName www.otherdomain.tld
    DocumentRoot /www/otherdomain
</VirtualHost>

答案 1 :(得分:0)

301重定向后,HTTP referer不会更改。您需要从规则中排除_APM/dist请求:

RewriteCond %{HTTP_REFERER} ^(.*)mydomain1\.com [NC]
RewriteRule !_APM/dist http://mydomain2.net/_APM/dist [R=301,L]