Apache重写/index异常,但不是第二个和更深层的索引?
我想对……有个例外 http://localhost/ …在重写下面任何目录的索引时 http://localhost/directory1/ http://localhost/directory2/ 通过在下面有一个空项(字符之间的第一个项(|在第三行),它会为所有索引创建一个异常,因此如何使用此.htaccess副本使异常不应用于localhost/本身 http://localhost/.htaccessApache重写/index异常,但不是第二个和更深层的索引?,apache,mod-rewrite,Apache,Mod Rewrite,我想对……有个例外 http://localhost/ …在重写下面任何目录的索引时 http://localhost/directory1/ http://localhost/directory2/ 通过在下面有一个空项(字符之间的第一个项(|在第三行),它会为所有索引创建一个异常,因此如何使用此.htaccess副本使异常不应用于localhost/本身 http://localhost/.htaccess RewriteEngine on RewriteRule ^(|directory2
RewriteEngine on
RewriteRule ^(|directory2/|directory2/) - [L]
RewriteRule !\.(css|xhtml|xml|zip)$ rewrite.php
…而且我不能干扰服务器配置。此外,此问题与重定向无关。尝试使用来匹配目录,然后将重写规则应用于匹配的任何内容
编辑:另外,我认为您的!行可能会导致一些问题。我使用进行了测试,并调整了建议的修复方案,使其如下所示:
RewriteCond %{REQUEST_URI} ^/(directory1|directory2)/
RewriteRule .(css|xhtml|xml|zip)$ - [L]
RewriteRule .* rewrite.php
这通常是我匹配事物的方式——如果您有一些不想处理的事物,请将它们与[L]指令匹配并停止处理规则,然后继续处理其他任何事物。此规则对根索引例外。因为没有任何事物介于^(^=以开头)和$($=以结尾)请求的URI与http://localhost/完全匹配。拥有[space]index.php(或将扩展名更改为所需的扩展名)将强制文件重写为自身。它似乎不会循环
RewriteRule ^$ index.php [QSA]
我试着重写cond%{REQUEST\u URI}!=“/”和RewriteCond%{REQUEST\u URI}!=”,但没有成功。我只是稍微修改了一下我的答案,希望能有所帮助。你很接近,它帮助我实现了这个目标:RewriteCond%{REQUEST\u URI}!*/(管理员博客论坛)so+1并接受,谢谢!