最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Apache AliasMatch: map certain directory when matching specific string - infinite loop - Stack Overflow

programmeradmin3浏览0评论

I am facing a particular request from the SEO team of a client and I need to handle two different CMS served on the same domain. Basically, the "root" cms is already configured in order to map all requests on the first CMS, where an .htaccess configuration is then handling the url in order to map proper parameters to the system.

The second CMS should act when the url contains a specific string, but the particular request is that the string is not at the beginning of the url, but has some parameters before. So I cannot use the Alias directive as other directories in the VirtualHost configuration and I am considering using AliasMatch instead.

To recap, the second CMS should serve responses when a url matches the "second-cms" keyword in the url:

/param1/param2/second-cms/param3/param4/param5/...

My tentative is to use this configuration in the VirtualHost:

    AliasMatch /second-cms/ /var/www/second-cms/

    <Directory /var/www/second-cms/>
        AllowOverride all
        Order allow,deny
        Require all granted
        Allow from all
        Options FollowSymLinks
    </Directory>

But what I get is an infinite redirect loop - in the browser address bar I see the url followed by repeated /index.html/index.html/index.html/index.html and so on string.

Please note that in the /var/www/second-cms/ dir there is also a .htaccess file (created and working in dev environment, with a simple Alias directive in the VirtualHost configuration) like this:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    Options +Indexes
    RewriteEngine on

    RewriteCond %{REQUEST_URI} \.html$ 
    RewriteCond %{HTTP_REFERER} ^(https?://[^/]+/.*/)
    RewriteRule (.*)\.html$ %1$1 [R=301,L]

    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteRule ^(.*)$   index.php?uri=/$1    [NC,L,QSA]
</IfModule>

<FilesMatch ".(ico|jpg|jpeg|png|gif|js|css)$">
    Header set Cache-Control "max-age=63072000, public"
</FilesMatch>

At first sight I thought that the redirect loop was because of some conflict between the AliasMatch directive and the .htaccess, but also removing the .htaccess from the destination directory i get the same infinite loop problem.

发布评论

评论列表(0)

  1. 暂无评论