2016-09-22 58 views
0

With Reference htaccess RewriteRule redirecting to parent directory?太多的重定向错误,浏览器显示

谢谢弗朗西斯Casula旁,你的答案是非常有益的,现在应用程序从一个文档根目录重定向到其他。我面临着无限的重定向问题。

我有以下不同版本的软件仓库。

  1. /var/www/portal/version/1.1.1/public/与(api.somedomain.com)
  2. /var/www/portal/version/1.1.2/public/
  3. 绑定
  4. /var/www/portal/version/1.1.3/public/
  5. /var/www/portal/version/1.1.4/public/

我想在下面的顺序来执行API(由版本)

api.somedomain.com/qr ---> /var/www/portal/version/1.1.1/public/

api.somedomain.com/v2/qr ---> /var/www/portal/version/1.1.2/public/

api.somedomain.com/v3/qr ---> /var/www/portal/version/1.1.3/public/

api.somedomain.com/v4/qr --->/var/www /portal/version/1.1.4/public/

我的httpd.conf是

AliasMatch ^/v2/(.*)$ "/var/www/portal/version/1.1.2/public/" 
<Directory "/var/www/portal/version/1.1.2/public"> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride all 
    Order allow,deny 
    Allow from all 
</Directory> 
. 
. 
AliasMatch ^/v4/(.*)$ "/var/www/portal/version/1.1.4/public/" 
<Directory "/var/www/portal/version/1.1.4/public"> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride all 
    Order allow,deny 
    Allow from all 
</Directory> 

和的.htaccess在/ var /网络/门户网站/ versio N/1.1.4 /公共/包含

<IfModule mod_negotiation.c> 
     Options -MultiViews 
    </IfModule> 

    RewriteEngine On 
    # Redirect Trailing Slashes... 
    RewriteRule ^(.*)/$ /$1 [L,R=301] 

    RewriteCond %{REQUEST_URI} ^/v2/(.*)$ 
    RewriteRule ^(.*)$ v2/index.php [QSA,L] # p2 is the symlink name! 

    # Handle Front Controller... 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule^index.php [L] 

</IfModule> 

当我打https://api.somedomain.com/v2/invitebysms

我得到太多的重定向错误,浏览器显示

https://api.somedomain.com/v2/invitebysms/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/index.php/

+0

鉴于您似乎有权访问主服务器配置文件,如果您只是将配置放在该配置文件中,而不是将.htaccess文件引入混合文件中,您将大大降低规则集的复杂性。 –

回答

0

我认为你是什么去的是以下内容:

Alias /v4/ /var/www/portal/version/1.1.4/public/ 
<Directory /var/www/portal/version/1.1.4/public/> 
    Require all granted 
    FallbackResource /v4/index.php 
</Directory> 

据我了解你要完成什么,上面的,在你的服务器配置(完全删除.htaccess文件)将做你想做的。 (对于v2,v3等重复)

我假设您至少运行2.2.16或更高版本,最好是2.4。如果没有,请告诉我,我们会再试一次。

+0

谢谢博文,我的apache版本是2.4.7。我按照你的建议做了同样的改变,但现在变成了404。 –