Symfony 4在子目录中

时间:2018-04-10 16:10:27

标签: apache symfony symfony4

我是法国开发人员,我确实在我的wamp localhost的子目录中安装了Symfony 4 。我的项目名为" cardMaker"。

我有.htaccess文件重定向到公共目录(index.php):

<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteRule "^$" public/ [L]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . srcAngular/index.html [L]
</IfModule>

有效。但是,当我打开http://localhost/cardMaker/时,我有issue

如何设置基本网址?

感谢您的回复, 斯芬克斯

3 个答案:

答案 0 :(得分:0)

https://symfony.com/doc/current/setup/web_server_configuration.html,他们说:

# If you run your Symfony application on a subpath of your document root, the
# regular expression must be changed accordingly:
# ProxyPassMatch ^/path-to-app/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/project/public/$1

答案 1 :(得分:0)

将symfony应用添加为别名。配置您的apache httpd.conf文件:

Alias /cardMaker "C:/Csi\CsiWorkspace/cardMaker/public"
<Directory "C:/Csi\CsiWorkspace/cardMaker/public">
    AllowOverride All
    Options Indexes FollowSymLinks
    Require all granted

    DirectoryIndex index.php index.html

  <IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteRule cache/ - [F]
    RewriteBase /symfonytest

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !=/favicon.ico
    RewriteRule ^ ./index.php [L]
  </IfModule>

</Directory>

注意将 RewriteBase 用作别名 cardMaker

答案 2 :(得分:0)

此配置(使用 php-fpm)目前适用于我:

阿帕奇:2.4

Symfony:3.4.44

<Directory /var/www/example.local>
    Options Indexes FollowSymLinks
    Allow from all
    AllowOverride None
    Require all granted
    Order deny,allow
    Deny from all
</Directory>

Alias /cardMaker /var/www/example.local/cardMaker/public
<Directory /var/www/example.local/cardMaker/public>
    DirectoryIndex index.php

    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    <IfModule mod_rewrite.c>
        RewriteEngine On

        RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
        RewriteRule .* - [E=BASE:%1]

        RewriteCond %{HTTP:Authorization} .+
        RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]

        RewriteCond %{ENV:REDIRECT_STATUS} =""
        RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]

        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ %{ENV:BASE}/index.php [L]
    </IfModule>

    <IfModule !mod_rewrite.c>
        <IfModule mod_alias.c>
            RedirectMatch 307 ^/$ /index.php/
        </IfModule>
    </IfModule>
</Directory>


ProxyPassMatch ^/cardMaker(.*\.php(/.*)?)$ fcgi://php:9000/var/www/example.local/cardMaker/public$1