У меня есть домен domain.gr
.
Я установил сервер Apache с mod_rewrite
и mod_jk
.
<VirtualHost *:80>
ServerName domain.gr
ServerAlias www.domain.gr
ServerAdmin "info@domain.gr"
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
Любая идея?
Где вы разместили эти правила перезаписи? т.е. находятся ли они в этом блоке или вы поместили их в другое место? Возможно, в файле .htaccess?
Что происходит вместо этого? то есть остается в domain.gr/myapp, или происходит что-то еще?
Если он находится в файле .htaccess, $ 1 будет «myapp», а не «/ myapp», что приведет к перенаправлению на domain.grmyapp, которого, конечно же, не существует.