.htaccess 重写一个 url,而不是另一个

Posted

技术标签:

【中文标题】.htaccess 重写一个 url,而不是另一个【英文标题】:.htaccess rewrites one url, not the other 【发布时间】:2012-04-25 20:27:09 【问题描述】:

我已经设置了这组.htaccess 重写(Zend Framework 默认重写规则):

重写引擎开启
RewriteCond %REQUEST_FILENAME -s [OR]
RewriteCond %REQUEST_FILENAME -l [OR]
RewriteCond %REQUEST_FILENAME -d
重写规则 ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

我的DocumentRoot 文件夹仅包含.htaccessindex.php,没有其他内容。

重写规则应该通过 index.php 将所有请求发送到不存在的文件。 这发生在/herp/derp/(无论控制器是否存在),但不适用于/index/herp/ 或任何其他以/index/ 开头的url。

所有/index/* url都被路由到apache的404页面,所有其他url都可以。

我应该如何解决这个问题?

【问题讨论】:

【参考方案1】:

原来 MultiViews 可以做到这一点。仍然不知道为什么:P

【讨论】:

以上是关于.htaccess 重写一个 url,而不是另一个的主要内容,如果未能解决你的问题,请参考以下文章

使用 htaccess 重写后,如何在 PHP 中获取可见 URL(不是实际 URL)? [复制]

我想用 .htaccess 禁用目录而不是子目录的访问

重写子文件夹而不是主网站的规则

使用 .htaccess 将特定路径镜像到另一个 url

.htaccess 多 URL 重写

.htaccess重写合并