2016-09-02 3 views
2

をapp.phpするために、私はに私のhtaccessファイルを変更したいと思います:へ(SEOコールをapp.php呼び出しの.php *すべてをリダイレクトのhtaccess Symfony2のすべて* .PHPのページをリダイレクトする(しかしapp.php)

  1. 上記のリライトルールでapp.phpを除くリダイレ​​クトループは避けてください。

私はこれで終わった:

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteCond %{REQUEST_URI} !app\.php$ 
    RewriteRule ^(.*)\.php?$ /app.php/ [R=301,L] 

    [...] 

</IfModule> 

しかし、これは、ここで何が悪いhttp://example.com/sqdlkqjsdlsqk.php

のようなテストのURLに404を生成?

よろしく、

答えて

1

あなたはapp.phpの後にスラッシュを付けずに、このルールを使用する必要があります。

RewriteEngine On 

RewriteCond %{REQUEST_URI} !^/app\.php$ [NC] 
RewriteRule ^(.+)\.php$ /app.php [R=301,L,NC,NE] 

この変更をテストする前に、ブラウザのキャッシュをクリアすることを確認します。

+1

ありがとうございました。遅い回答に申し訳ありません... – nbonniot

1

これを確認してください。キャッシュをクリアするようにしてください。

DirectoryIndex app.php 

<IfModule mod_rewrite.c> 
    RewriteEngine On 

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

    RewriteEngine On 
    RewriteCond %{HTTP:Authorization} ^(.*) 
    RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] 
    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> 
     # 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> 
+0

ありがとう、これも同様に機能しましたが、私のニーズのために少し過度のものでした。 +1 mod_rewriteの処理を無効にします – nbonniot

関連する問題