当我Alias
进入带有 .htaccess 文件的目录时RewriteRules
,我收到“404 Page Not Found”消息。
在我的虚拟主机配置中,我有以下内容:
Alias /foo
<Directory "/home/andrejovich/public_html/foo">
Options Indexes FollowSymlinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
所以这是相当标准的。
在 /home/andrejovich/public_html/foo 我有一个 .htaccess 文件,如下所示:
RewriteEngine on
RewriteCond $1 !^(index\.php|js|css|img)
RewriteRule ^(.*)$ /~andrejovich/foo/index.php/$1 [L]
这个概念是诸如“ http://example.com/foo/bar/baz ”之类的地址只是工作(tm)。
如果我直接转到我的主目录,这是真的,如“ http://example.com/~andrejovich/foo/bar/baz ”:我的 index.php 被执行并且我得到了我期望的页面——所以我知道我的 index.php 正在工作。
如果我在“foo”之后省略了任何内容,我的 index.php 会为我生成一个默认页面,该页面也适用于“ http://example.com/~andrejovich/foo ”和“ http://example.com/foo ” " - 所以我知道别名正在工作。
但是,如果我通过别名并在那里有 /bar/baz 部分,它会失败:
“ http://example.com/foo/bar/baz ” ==> 404. 怎么会?我如何解决它?