我正在构建一个Laravel应用程序,它将位于当前项目的子文件夹中。我正在尝试删除URL中的/ public,以便用户可以通过以下URL查看项目:
www.domain.com/project
而不是默认...
www.domain.com/project/public
我在StackOverflow和Laracasts论坛上做了一些挖掘,我在项目根目录的.htaccess
文件中尝试了这个:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
然而,当我这样做时,我的路线不再起作用了。甚至/
的默认路由也停止了。
许多答案都提到最好的方法是更改Apache配置中的根目录,以便它从/ public而不是在目录的根目录中提供文件。
问题是,在主项目的子文件夹中,如何才能使这个项目受到影响? www.domain.com
的网站运行正常,网址中没有/ public。
答案 0 :(得分:0)
有几种选择。我不认为你想尝试使用mod重写(或类似的东西)在htaccess级别修复它
一种选择是创建另一个侦听abitrary端口的虚拟主机(例如,8080)。然后将此虚拟主机的文档根目录设置为... / public /
另一种选择是,您可以欺骗/ etc / hosts或Windows hosts文件中的DNS,并设置dev.domain.com虚拟主机。
答案 1 :(得分:0)
•转到mainproject / public&gt;&gt;
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<User>().ToTable("Users"); // Your custom IdentityUser class
builder.Entity<IdentityUserLogin<string>>().ToTable("UserLogins");
builder.Entity<IdentityUserToken<string>>().ToTable("UserTokens");
builder.Entity<IdentityUserClaim<string>>().ToTable("UserClaims");
builder.Entity<IdentityUserRole<string>>().ToTable("UserRoles");
builder.Entity<IdentityRoleClaim<string>>().ToTable("RoleClaims");
builder.Entity<IdentityRole>().ToTable("Roles");
}
1.从公共文件夹中剪切这5个文件,然后粘贴到主项目文件夹中,这意味着公共文件夹的一侧... mainproject / files
2.粘贴后,打开index.php,修改
a. .htacess
b. favicon.ico
c. index.php
d. robots.txt
e. web.config