我请求一些帮助来保持头发:D更严重的是,我尝试了很多";解决方案";在不同论坛的不同帖子上发现,没有任何结果,所以我需要一个干净和新鲜的观点。。。
所以:我用Apache2.4和Tomcat9用mod_jk运行了一个JEE应用程序。为了避免在我的JEE网络应用程序中存储视频等重内容,我在服务器上创建了一个目录,专门用于一些静态内容。为了做到这一点,我试图在我的apachevhost中设置一个目录别名,但我得到了403错误。
- 你会在下面找到我的vhost,别名从/video到/etc/mondir/video(我试过以/结尾或不以/结尾(
- 我尝试了很多目录指令,但没有结果
- Apache2通过www数据用户拥有目标目录
- 我还试图在etc/apache2/mods-available/alias.conf中声明目录别名:不是更好
我没有更多的想法,在互联网上也找不到模式的想法。
你能给我一些线索吗?帮助劝告非常感谢!
<VirtualHost *:443>
ServerName mondomaine.com
ServerAlias www.mondomaine.com
ServerAdmin webmaster@localhost
#DocumentRoot /var/www
DocumentRoot /etc/mondir/
<Directory /etc/mondir/>
Options FollowSymLinks
AllowOverride None
</Directory>
#Add acces to static ressource in /etc/mondir
Alias "/video" "/etc/mondir/video"
Alias "/moncontext/video" "/etc/mondir/video"
<Directory "/etc/mondir/video">
#Options Indexes MultiViews FollowSymLinks
#AllowOverride None
#Order allow,deny
#Allow from all
#Options FollowSymlinks
#AllowOverride None
#Require all granted
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require local
</Directory>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.mondomaine.com
RewriteRule ^video/(.*) /video/$1 [L,QSA]
RewriteRule ^video(.*) /video/$1 [L,QSA]
RewriteRule ^moncontext/(.*) /moncontext/$1 [L,QSA]
RewriteRule ^moncontext(.*) /moncontext/$1 [L,QSA]
RewriteRule ^(.*) /moncontext/$1 [L,QSA]
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mondomaine.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mondomaine.com/privkey.pem
JkMount /moncontext/* ajp13_worker
</VirtualHost>
好的指令是"要求所有被授予";但是,最重要的是,问题和解决方案在mod_rewrite方面。默认情况下,重写不会到达文件系统,只到达URI。"重写"规则必须具有"传递"选项(PT标志(,才能被Dir Alias看到。
关于mod_rewrite文档的更多信息:如果你知道在哪里阅读,它就写得很简单。
谢谢大家,