RewriteBase в .htacces, когда у вас есть несколько каталогов под корнем - PullRequest
0 голосов
/ 18 октября 2018

Внутри моего корня у меня слишком много подпапок разных проектов.В настоящее время я работаю над программой CakePHP, и мне пришлось установить файлы .htaccess, чтобы я мог получить доступ к index.php.

вот различные созданные мной файлы .htaccess:

в htdocs в lampp:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule    ^$ carte_drin/app/webroot/    [L]
RewriteRule    (.*) carte_drin/app/webroot/$1 [L]
</IfModule>

в carte_drin папка проекта cakephp:

<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>

В webroot папка:

<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 .Я считаю, что правило перезаписи файла .htaccess в htdocs вызывает проблему.

Мне нужен способ сделать точки .htaccess в каждой папке проекта в корневом каталоге.

1 Ответ

0 голосов
/ 18 октября 2018

Настройка правильных виртуальных хостов.В папке apache conf сначала откройте основной conf и раскомментируйте строку, включая httpd-vhosts.conf.В дополнительном подкаталоге вы найдете httpd-vhosts.conf.Откройте это и добавьте конфигурацию хоста для каждого сайта.Вы должны быть в состоянии удалить файлы .htaccess, поместив любую эту информацию в конфигурацию vhost.Здесь я установил dev.example.com, который находится в /var/www/devsite, с index.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>

Как только вы это сделаете, отредактируйте /etc/hosts на вашем Linux или MacНоутбук или c:\windows\system32\drivers\etc\hosts в Windows, добавив следующую строку:

127.0.0.1 dev.example.com

Затем перезапустите Apache, запустите браузер и перейдите на dev.example.com.Ваш сайт теперь работает на виртуальных хостах!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...