【发布时间】:2015-03-16 19:09:53
【问题描述】:
我们在共享主机上运行并在 example.com 的主域上运行 laravel,一切正常。
我们通过访问 cPanel 中的 子域管理器 创建了一个 sudbomain test.example.com,并将其文档根目录指向 /public_html/test
我们一访问test.example.com,就会收到500 Internal Server Error
初始 laravel 的 .htaccess 是
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我们变了。
RewriteRule ^ index.php [L]
到
RewriteRule ^ /index.php [L]
现在如果我们访问test.example.com,它会重定向到tests.example.com/test,一切正常。
但我们不确定它为什么将浏览器重定向到tests.example.com/test?
更新
经过进一步研究,我们发现。
如果我们删除这一行。
RewriteRule ^(.*)/$ /$1 [L,R=301]
然后主域和子域都可以正常工作。但是去掉这行可以吗?
简而言之,我们想在主域上运行 laravel,在子域上运行其他东西。
【问题讨论】:
-
如果你去 tests.example.com/public 怎么办?
-
test.example.com中没有任何内容,只需将index.php与phpinfo();一起归档即可。 -
你的意思是/public_html/test里面没有laravel?只是 index.php ?
-
@EimantasGabrielius 如果我们删除
RewriteRule ^(.*)/$ /$1 [L,R=301],那么子域和主域都可以正常工作。但不确定远程这个是否可以。 -
是的
/public_html/test文件夹不包含 laravel,它只包含index.php文件。 Laravel 安装在/public_html(主域)
标签: php apache .htaccess laravel-4