0

所以我正在使用 Kohana,如果你知道的话它很有用,但不需要帮助我。

我有以下 mod_rewrite 规则:

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/store/.*$

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php [L]

所以我试图将所有对不存在的文件和目录的请求重写为index.php.

但是,我希望发送到的任何请求都能mydomain.com/store/*通过,因为目录中有另一个 htaccess 文件在store那里工作。目前这似乎不起作用。有任何想法吗?

完整的htaccess:

# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /

#ErrorDocument 404 http://www.mydomain.com/404Page.html
#Options +FollowSymlinks

# Protect hidden files from being viewed
<Files .*>
    Order Deny,Allow
    Deny From All
</Files>


RewriteCond %{REMOTE_ADDR} !^myip
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ http://www.mydomain.com/maintenance.html [R=307,L]

##301 Redirect Rules##
#some 301 redirects i did not include here

##Kohana Redirect Rules##

# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system|kohana|vendors)\b.* http://www.mydomain.com/ [L]

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?store/

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php [L]
4

2 回答 2

1

试试这个条件:

RewriteCond %{REQUEST_URI} !^/?store/

目录后面的字符不需要检查。如果我没记错的话,我将第一个斜杠设为可选,只有在您的服务器配置不包含尾斜杠时才可见第一个斜杠。

于 2013-02-14T18:30:34.907 回答
0

问题出在目录中的 .htaccess 文件中,而store不是 webroot 中的文件中。谢谢大家,并为我的愚蠢感到抱歉。如果有人想就如何为未来的用户调试这种性质的东西留下评论,那就太棒了。

于 2013-02-14T19:02:38.037 回答