使用.htaccess将所有请求重定向到子域

时间:2015-10-01 07:57:02

标签: apache .htaccess laravel mod-rewrite redirect

我正在我的服务器上托管一个Laravel应用程序,并设置了一个子域来在我的虚拟主机中托管它。

我的服务器上有另一个子域名,经过几个小时的尝试设置.htaccess文件后,我想出了以下内容,将所有请求重定向到www.mysite.net/example到我的子域example.mysite.net(例如www.mysite.net/example/12345转到example.mysite.net/12345

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?(mysite\.net)$ [NC]
RewriteRule ^(.*)$ http://example.%1/$1 [R=301,L,NE]

我想要调整它以与Laravel一起使用,但考虑到Laravel是在以下路径mysite.net/laravel/public而不是mysite.net/example中托管的,它的效果并不相同。

如何修改上述.htaccess以将所有请求重定向到mysite.net/laravel/publiclaravel.mysite.net?我mysite.net/laravel/public/12345会重定向到laravel.mysite.net/12345

修改 这是我通过Apache添加的虚拟主机

<VirtualHost *:80>
        ServerName laravel.mysite.net
        DocumentRoot /var/www/laravel/public
        <Directory /var/www/laravel/public>
            Options -Indexes
        </Directory>
</VirtualHost>

2 个答案:

答案 0 :(得分:1)

将此规则作为您的第一条规则放在/var/www/laravel/public/.htaccess

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?mysite\.net$ [NC]
RewriteCond %{THE_REQUEST} /laravel/public/(\S*)\s [NC]
RewriteRule ^ http://laravel.mysite.net/%1 [L,R=302]

答案 1 :(得分:0)

您可以使用htaccess的重定向规则将任何目录重定向到其他域。使用以下代码:

Redirect 302 /laravel/public/ http://laravel.mysite.net/

如果它可以帮助你,请告诉我。