重写cond%{REQUEST_FILENAME}-f不';不适用于.php文件

重写cond%{REQUEST_FILENAME}-f不';不适用于.php文件,php,apache,mod-rewrite,Php,Apache,Mod Rewrite,我有一个symfony 2网站,它要求所有URL都重新写入文档索引 此外,还有一些完全独立的“微型站点”,它们在web目录中的子文件夹已经用完了。我需要为指向microsite子文件夹的任何URL添加重写异常 这是我的.htaccess文件: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} !^/(microsite1|microsite2|microsite3)(.*)$

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

此外,还有一些完全独立的“微型站点”,它们在web目录中的子文件夹已经用完了。我需要为指向microsite子文件夹的任何URL添加重写异常

这是我的.htaccess文件:

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

重新启动发动机
重写cond%{REQUEST_URI}^/(微型1 |微型2 |微型3)(*))$
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$%{document_index}[QSA,L]
这适用于microsite文件夹中除.php文件以外的所有文件,即:

  • www.domain.com/microsite1/index.html---works(显示index.html)
  • www.domain.com/microsite2/--works(displays index.php)
  • www.domain.com/microsite2/contact.php---不工作(显示symfony route not found错误)
另外:

  • www.domain.com/microsite2/images/---成功显示目录列表
  • www.domain.com/microsite2/images/image.jpg---成功显示图像

您可能需要将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>

服务器名服务器名
DocumentRoot/var/www/path/to/document/root
重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则!\。(js | ico | gif | jpg | png | css)$/index.php

密切关注最后一条重写规则…

保持简单-将此规则添加到.htaccess:

RewriteCond %{REQUEST_URI} ^/microsite1 [OR]
RewriteCond %{REQUEST_URI} ^/microsite2 [OR]
RewriteCond %{REQUEST_URI} ^/microsite3
RewriteRule ^.*$ - [NC,L]

通过
RewriteLog
RewriteLogLevel
指令打开重写日志记录。看看发生了什么。如果日志条目没有意义或者
mod_rewrite
没有达到预期效果,请返回并发布日志条目。