在 .htacces 中重写库,当你在根目录下有多个目录时



在我的根目录中,我有太多不同项目的子文件夹。目前,我穿着蛋糕,我必须设置.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。您的站点现已在虚拟主机上启动并运行!

最新更新