2016-09-22 83 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。 –