2

すべての URL をドキュメント インデックスに書き直す必要がある symfony 2 Web サイトがあります。

さらに、完全に独立した「マイクロ サイト」が多数あり、Web ディレクトリ内の独自のサブフォルダーが不足しています。マイクロサイトのサブフォルダーを指すすべての URL に対して、書き換えの例外を追加する必要があります。

これは私の .htaccess ファイルです:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/(microsite1|microsite2|microsite3)(.*)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ %{document_index} [QSA,L]
</IfModule>

これは、マイクロサイト フォルダー内の .php ファイルを除くすべてに対して機能します。

  • www.domain.com/microsite1/index.html ---動作します (index.html を表示)
  • www.domain.com/microsite2/ ---動作します (index.php を表示)
  • www.domain.com/microsite2/contact.php ---動作しません(symfony route not found エラーが表示されます)

さらに:

  • www.domain.com/microsite2/images/ --- ディレクトリ リストの表示に成功
  • www.domain.com/microsite2/images/image.jpg --- 画像が正常に表示されます
4

2 に答える 2

4

apacheの設定を次のように変更する必要があるかもしれません。

<VirtualHost *:80>
    ServerName server-name
    DocumentRoot /var/www/path/to/document/root
    <Location />
            RewriteEngine on
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule !\.(js|ico|gif|jpg|png|css)$ /index.php
    </Location>
</VirtualHost>

最後のRewriteRuleに細心の注意を払っています...

于 2012-05-16T21:44:01.530 に答える
1

シンプルに保つ-このルールを.htaccessに追加します。

RewriteCond %{REQUEST_URI} ^/microsite1 [OR]
RewriteCond %{REQUEST_URI} ^/microsite2 [OR]
RewriteCond %{REQUEST_URI} ^/microsite3
RewriteRule ^.*$ - [NC,L]
于 2012-05-16T21:51:50.783 に答える