我有域名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。