0

app.php を URL から隠そうとしています

私は持っている:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]

これは問題なく動作します..しかし、ユーザーがアクセスすると

domain.com/app.php/Home/

URLがまだあるより

domain.com/app.php/Home/

そして私はただ持っていたい

domain.com/Home

それを解決する方法は?

私は試した:

#RewriteCond %{THE_REQUEST} ^.*/app.php
#RewriteRule ^(.*)app.php/(.*)?$ /$2 [R=301,L]

これは必要に応じて機能しますが、いくつかのアクション動的jquery ajaxアクションを実行するとエラー405が発生します.

4

3 に答える 3

2

mod_rewrite有効にしていないようです。マシンで行う必要があります:

  • sudo a2enmod rewrite(または、持っていない場合は他の方法でモジュールを有効にしますa2enmod
  • service apache2 restartまた/etc/init.d/apache2 restart

次に、AllowOverride AllURL が Symfony の によって適切にキャッチされるように、vhost 設定を設定する必要がありますweb/.htaccess


追加情報: Symfony でweb/.htaccess:

<IfModule !mod_rewrite.c> <IfModule mod_alias.c> # When mod_rewrite is not available, we instruct a temporary redirect of # the start page to the front controller explicitly so that the website # and the generated links can still be used. RedirectMatch 302 ^/$ /app.php/ # RedirectTemp cannot be used instead </IfModule> </IfModule>

mod_rewriteが有効になっていない場合、Apache は を使用mod_aliasしてすべてのリクエストを渡しますapp.php。そのため、ドメインのルート URL を入力してリダイレクトされる場合は、app.phpおそらくmod_rewrite.

于 2014-07-29T14:27:31.633 に答える
0

私はこのようなことを書きましたが、それが良い解決策かどうかわかりませんか?

RewriteCond %{THE_REQUEST} ^.*/app.php 
RewriteCond %{REQUEST_METHOD} !=POST
RewriteRule ^(.*)app.php/(.*)?$ /$2 [R=301,L]
于 2013-05-25T10:31:20.427 に答える
-1

問題の解決策については、こちらで説明しています。

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^app_dev.php - [L]
    RewriteRule ^app.php - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    # Change below before deploying to production
    #RewriteRule ^(.*)$ app.php [QSA,L]
    RewriteRule ^(.*)$ app_dev.php [QSA,L]
</IfModule>
于 2013-05-24T14:46:53.940 に答える