.htaccess上的重写导致404

时间:2012-12-10 17:44:17

标签: .htaccess mod-rewrite

我正在使用PHP 5开发一个托管在apache服务器上的应用程序。

域名上已经有一个网站:www.domain.com。我的应用程序位于名为“hotsite”的文件夹中,可以通过网址访问www.domain.com/hotsite/.

根文件夹包含一个包含以下内容的.htaccess:

/ htaccess的:

XBitHack      Off
RewriteEngine On
RewriteCond   %{REQUEST_URI} \/([0-9a-z]{6})$ [NC]
RewriteRule   ^(.*) http://www.domain.com/url/forward.php?%1 [L]
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti*
<Limit GET POST>
order deny,allow
deny from all
allow from all
</Limit>
<Limit PUT DELETE>
order deny,allow
deny from all
</Limit>
AuthName www.domain.com
AuthUserFile /home/intera/public_html/_vti_pvt/service.pwd
AuthGroupFile /home/intera/public_html/_vti_pvt/service.grp
RedirectMatch permanent ^/webmail$ http://http://mail.google.com/hosted/domain.com www.domain.com/hotsite/

在这个'hotsite'文件夹中,有一个包含以下代码的.htaccess文件:

/hotsite/.htaccess:

RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ /folder/index.php

现在,当我访问www.domain.com/hotsite/时,我的应用程序加载正常。但是当我尝试访问www.domain.com/hotsite/section/时,它似乎忽略.htaccess文件并尝试访问“section”,就像它是一个文件夹一样,返回404错误。

任何想法为什么会发生这种情况,我该怎么做才能使它发挥作用?

谢谢=)

1 个答案:

答案 0 :(得分:1)

如果htaccess位于hotsite文件夹内,则RewriteBase /必须为RewriteBase /hotsite

以防万一;请注意,重写文件会重写为/folder/index.php,而不是/hotsite/folder/index.php