Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从子目录网站URL中删除index.php_Php_.htaccess_Laravel_Mod Rewrite - Fatal编程技术网

从子目录网站URL中删除index.php

从子目录网站URL中删除index.php,php,.htaccess,laravel,mod-rewrite,Php,.htaccess,Laravel,Mod Rewrite,我目前正在将大量子域网站迁移为子目录网站。e、 g.site1.website.com=>website.com/site1。所有这些站点在同一目录中使用相同的代码。代码将读取站点名称并加载正确的数据库(如果存在)。因此,我为所有站点设置了以下别名格式 Alias /site1 /var/www/laravel/public 不需要太多解释,laravel是一个MVC框架,index.php是我唯一需要路由流量的文件。正因为如此,所有的URL都需要以index.php作为前缀,但这真的很难

我目前正在将大量子域网站迁移为子目录网站。e、 g.site1.website.com=>website.com/site1。所有这些站点在同一目录中使用相同的代码。代码将读取站点名称并加载正确的数据库(如果存在)。因此,我为所有站点设置了以下别名格式

Alias  /site1 /var/www/laravel/public 
不需要太多解释,laravel是一个MVC框架,index.php是我唯一需要路由流量的文件。正因为如此,所有的URL都需要以index.php作为前缀,但这真的很难看,我似乎无法摆脱它

我尝试了下面的方法,当网站是一个子域名的时候,它是有效的,但是现在不起作用了。当我使用此代码时,website.com/site1/login将重定向到website.com/login

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

所有网站都是动态的,所以我不想为每个网站硬编码规则。有什么方法可以解决这个问题吗?

您可以从laravel\config\database.php为每个站点管理连接


然后您可以设置所有子域将指向一个位置,现在您需要在添加新网站时更新update justdatabase.php

为新文件夹设置重写库,如下所示:

RewriteEngine On
RewriteBase /site1/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

你能吗?这种方法很有效。URL没有重定向到主网站,但仍然会出现404错误。在此服务器上找不到请求的URL/site1/login。您有常规的
routes.php
或在其中处理动态内容?只有常规的routes.php。我拥有的唯一动态功能是数据库连接。当它是一个子域时,其他一切都正常工作您的
根文件夹或
主文件夹中有
.htaccess
?数据库不是url中index.php的问题。数据库连接工作得很好!这起作用了。您知道是否可以动态执行此操作吗?我有很多子域,将来我会添加更多,所以如果我不必每次都添加一个新的子域就好了。我以前误读了你的问题。我不太明白为什么
RewriteBase/
不起作用。Laravel肯定会帮你处理目录吗?因为某种原因,当我设置RewriteBase/时,它只会显示主网站的主页。你上面的代码工作得很好,只是需要编写大量的手动代码,所以如果我能动态地设置基址,那就太完美了。我拥有服务器的root访问权限,因此我可以在apaches conf文件中更改任何需要更改的内容。我发现这样做可以吗?实际上,这样做有效!重写规则^%{ENV:BASE}/index.php[L]。我完全删除了reqwritebase