0

我有一个 REST 框架,当它放入任何目录时应该只是工作(TM),当我在子目录中有项目时它似乎工作正常,但如果它在根目录中则不行。因此,给定一些示例目录;

/
/project1
/bingo/project2
/hoopla/doopla/minor/project3

所有这些工作都很好,除了当项目在根目录中运行时我得到“有趣”*(我想有点难以解释,但二级重写无法正常工作)。这是我对通用 .htaccess 文件的尝试:

RewriteEngine On
RewriteRule ^static/ - [L]
RewriteCond %{REQUEST_URI} ^$
RewriteRule .* ./ [R,L]
RewriteRule ^index.php - [L]
RewriteRule (.*) index.php?q=$1 [QSA,PT]

(是的,所有项目都有一个子目录 ./static 被重写忽略)我想要实现的是一组适用于大多数情况的重写规则(再次,将项目放在网络服务器的目录中)供应)。我绝不是一个重写规则的专家,任何好的建议和陷阱都将不胜感激(是的,我已经阅读了太多介绍性文章。我需要一些严肃的果汁。)

  • 有关搞笑的更多信息;我的网络服务器在一个位置(在 /usr/share/apache2/default-site/ 下)有 docroot,但是一组规则说 /projects 是从其他不是 docroot 子目录(/home/user/项目/)。当我去那里时,我得到 /projects 子目录的列表,如果这些子目录之一被建议的重写规则调用(restmapp),我得到;

    在此服务器上找不到请求的 URL /home/user/Projects/restmapp/index.php。

4

1 回答 1

0

试试这些规则:

RewriteRule ^static/ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php?q=$0 [L,QSA]

编辑   此外,您可以使用该R标志强制外部重定向或激活mod_rewrite 的日志记录功能,以查看请求如何在内部重写/重定向。

于 2009-04-26T18:43:25.010 回答