簡體   English   中英

沒有app.php的Symfony2:404 Not Found

[英]Symfony2 : 404 Not Found without app.php

這是我在public_html目錄中的htaccess:

DirectoryIndex app.php

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

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

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]

    RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /app.php/
    </IfModule>
</IfModule>

這是/etc/apache2/sites-available/mydomain_com.conf:

<VirtualHost *>
        ServerAdmin webmaster@mydomain.com
        ServerName  mydomain.com
        ServerAlias www.mydomain.com

        # Indexes + Directory Root.
        DocumentRoot /home/myuser/domains/mydomain.com/public_html
        # DirectoryIndex app.php
        <Directory /home/myuser/domains/mydomain.com/public_html>
            AllowOverride All
            Order allow,deny
            Allow from All
        </Directory>

        # CGI Directory
        ScriptAlias /cgi-bin/ /home/myuser/domains/mydomain.com/cgi-bin/
        <Location /cgi-bin>
                Options +ExecCGI
        </Location>


        # Logfiles
        ErrorLog  /home/myuser/domains/mydomain.com/log/error.log
        CustomLog /home/myuser/domains/mydomain.com/log/access.log combined
</VirtualHost>

這些是結果:

  • mydomain.com =>重定向到mydomain.com/app.php/然后工作正常。
  • mydomain.com/post/ => 404 Not Found
  • mydomain.com/app.php/post/ =>工作正常。

任何的想法 ?

是否啟用了apache的mod_rewrite? 如果沒有,請啟用它,重新啟動服務器並再試一次。

a2enmod rewrite
service apache2 restart

使用您的設置嘗試此虛擬主機

<VirtualHost 127.0.0.1>
    DocumentRoot "/path/to/yourdomain.com/web/"
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com
    <Directory "/path/to/yourdomain.com/web/">
        DirectoryIndex app.php
        AllowOverride All
        Order allow,deny
        Allow from all
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ app.php [QSA,L]
        RedirectMatch permanent ^/app\.php/(.*) /$1
    </Directory>
</VirtualHost>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM