使用 mod_jk 进行 Apache URL 规范化

使用 mod_jk 进行 Apache URL 规范化

我有域名domain.gr

mod_rewrite我已经使用和设置了 Apache 服务器mod_jk

<VirtualHost *:80>
    ServerName domain.gr
    ServerAlias www.domain.gr
    ServerAdmin "[email protected]"
    DocumentRoot /var/www

    <IfModule jk_module>
        JkMount /myapp/* worker1

        Alias /myapp "/opt/tomcat/webapps/myapp"

        <Directory "/opt/tomcat/webapps/myapp">
            Options Indexes FollowSymLinks
            Allow from all
        </Directory>

        <Location "/myapp/WEB-INF/">
            Deny from all
        </Location>
    </IfModule>
</VirtualHost>

一切正常,但现在我想规范化 URL。

我想要当我输入

domain.gr         -> www.domain.gr
domain.gr/myapp   -> www.domain.gr/myapp

我使用规则

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.gr [NC]
RewriteRule ^(.*)$ http://www.domain.gr$1 [L,R=301]

当我写的时候domain.gr它去www.domain.gr,但是当我写的时候domain.gr/myapp它不去www.domain.gr/myapp

任何想法?

答案1

您把这些重写规则放在哪里了?也就是说,它们是在那个块内,还是您把它们放在其他地方了?也许是在 .htaccess 文件中?

相反会发生什么?即,它会停留在 domain.gr/myapp 吗,还是会发生其他事情?

如果它在 .htaccess 文件中,$1 将是“myapp”而不是“/myapp”,导致重定向到当然不存在的 domain.grmyapp。

相关内容