我正在我的服务器上托管一个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/public
到laravel.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>
答案 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/
如果它可以帮助你,请告诉我。