在我的根目录中,我有太多不同项目的子文件夹。目前,我穿着蛋糕,我必须设置.htaccess文件,以便我可以访问索引.php。
以下是我创建的不同.htaccess文件:
在LAMPP 的 HTDOCS中:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^$ carte_drin/app/webroot/ [L]
RewriteRule (.*) carte_drin/app/webroot/$1 [L]
</IfModule>
在carte_drincakephp项目文件夹中:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /carte_drin/
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
应用内文件夹
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /carte_drin/app/
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
在网页根文件夹中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /carte_drin/app/webroot/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
我的问题是当我尝试访问另一个项目时,我被定向到carte_drin项目。我相信 htdocs 中 .htaccess 文件的重写规则导致了这个问题。
我需要一种方法在根目录的每个项目文件夹中创建 .htaccess 点。
设置正确的虚拟主机。在您的 apache conf 文件夹中,首先打开主 conf 并取消注释包括httpd-vhosts.conf
在内的行。在额外的子目录中,您将找到httpd-vhosts.conf
。打开它,并为每个站点添加一个主机配置。您应该能够删除.htaccess
文件,并将任何这些信息放入虚拟主机配置中。在这里,我设置了dev.example.com
,它位于/var/www/devsite
中,索引.php位于/var/www/devsite/public/index.php
<VirtualHost *:80>
DocumentRoot "/var/www/devsite/public"
ServerName dev.example.com
ServerAdmin delboy1978uk@gmail.com
ErrorLog "/var/www/devsite/logs/error_log"
SetEnv APPLICATION_ENV development
<Directory "/var/www/devsite">
DirectoryIndex index.php
FallbackResource /index.php
Options -Indexes +FollowSymLinks
AllowOverride all
Require all granted
</Directory>
BrowserMatch ".*MSIE.*" nokeepalive downgrade-1.0 force-response-1.0
</VirtualHost>
完成此操作后,在Linux或Mac笔记本电脑上编辑/etc/hosts
,或在Windows上编辑c:windowssystem32driversetchosts
,添加以下行:
127.0.0.1 dev.example.com
然后重新启动您的apache,启动浏览器,然后前往 dev.example.com。您的站点现已在虚拟主机上启动并运行!