2

我有一个 symfony 2 网站,它要求将所有 url 重新写入文档索引。

此外,还有许多完全独立的“微型站点”,它们只是在 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 回答