0

mod_rewrite を使いたかったのです。/var/www/.htこのコードにアクセスします

<IfModule mod_rewrite.c>

    Options +FollowSymlinks
    RewriteEngine On
    #AllowOverride All

    #Allow from All  
    #RewriteBase /WorldClock
    #RewriteBase WorldClock/web/app.php
    # Explicitly disable rewriting for front controllers
    RewriteRule ^/web/app_dev.php - [L]
    RewriteRule ^/web/app.php - [L]

    # Fix the bundles folder
    #RewriteRule ^(.*)$ WorldClock/web/app.php/test [QSA,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    # Change below before deploying to production
    RewriteRule ^(.*)$ WorldClock/web/app.php [QSA,L]
    #RewriteRule ^(.*)$ WorldClock/web/app_dev.php [QSA,L]

</IfModule>

行がコメントの場合、内部サーバー エラーが発生したことを意味します。 私のプロジェクトは/var/www/WorldClock/..css|js|img のフォルダーにあります。アクセス/var/www しようとすると、正常にlocalhost動作します。しかし、リンクをクリックしてこのようなURLhttp://localhost/info/12を取得すると、

 Not Found The requested URL /info.xml/12 was not found on this server.

.htaccess がなくてもすべて正常に動作します。Mod_rewrite は phpinfo() でオンになっています。symfony2 と Ubuntu を使用しています

4

1 に答える 1

0

私たちがお手伝いできるようにするには、少なくともあなたのウェブサーバーの設定が必要です。これは単に Web サーバーが適切に構成されていないことが原因だと思います。私の答えが間違っている場合は、意味のあるエラー メッセージで質問を更新してください。つまり、error.log と、どのルートが機能し、どのルートが機能しないかについての詳細な説明を確認してください。localhost にアクセスできるかどうかは完全にはわかりません。デフォルトの「It work's」ページまたはプロジェクトのフロントページを確認し、アセットにアクセスできるかどうかを確認します。

で新しいファイルを作成するだけworldclock.confです/etc/apache2/sites-available/

<VirtualHost *:80>
    ServerName localhost

    DocumentRoot /var/www/WorldClock/web
    <Directory /var/www/WorldClock/web>
        # enable the .htaccess rewrites
        AllowOverride All
        Order allow,deny
        Allow from All
    </Directory>
</VirtualHost>

新しい仮想ホストを有効にして、Web サーバーを再起動するだけです。

sudo a2ensite worldclock

# When both hosts use localhost as ServerName there might be some problems
# so we'll disable the default host, which we won't need anyway(?)
sudo adissite default

sudo service apache2 restart

これが開発環境のみの場合は、PHP の内部 Web サーバー (5.4 がインストールされていると仮定) を使用できますphp app/console server:run。その後、デフォルトで次の方法でアプリにアクセスできhttp://localhost:8000ます。

インストールされている PHP のバージョンを確認するにphp -vは、ターミナルで次を実行します。

于 2013-05-13T14:57:20.917 に答える