Apache - 使用虚拟主机进行 mod 重写的问题

Apache - 使用虚拟主机进行 mod 重写的问题

我已经设置了 Apache 2.0 和如下虚拟主机:

<VirtualHost *:80>
     ServerName wackystore
     ServerAlias wackyprojects
     Alias /media/admin /opt/python/lib/python2.7/site-packages/django/contrib/$
     Alias /media /opt/DjangoProjects/wacky/media
     #mod_wsgi setup
     WSGIScriptAlias / /opt/DjangoProjects/wacky/django.wsgi
</VirtualHost>

我已经设置了我们的 DNS,因此“wackystore”和“wackyprojects”都转到该服务器。

我希望发生的是让 mod rewrite 将 wackyprojects 的 url 更改为 wackprojects/tools。

例子:

http://wackystore -> no change

http://wackystore/something -> no change

http://wackyprojects/ -> http://wackyprojects/tools

http://wackyprojects -> http://wackyprojects/tools

http://wackyprojects/something -> no change

答案1

类似这样的事情应该可以工作:

RewriteCond %{HTTP_HOST} ^wackyprojects$ [NC]
RewriteCond %{REQUEST_URI} ^/*$
RewriteRule .* http://wackyprojects/tools [R,L]

“如果 HTTP_HOST 是wackyprojects,且 REQUEST_URI 是/或者什么都没有,那么就将请求重写为http://wackyprojects/tools并在那里停止。”

答案2

尝试这个:

RewriteEngine   on
RewriteCond %{HTTP_HOST}    wackyprojects [NC]
RewriteRule ^/$             http://wackyprojects/tools [L,R]
  • NC标志表示无案例
  • L- 最后规则和R- 强制重定向

相关内容