.htaccess在子文件夹中的404上无限循环

时间:2014-03-11 17:55:43

标签: .htaccess redirect http-status-code-404 subdirectory wildcard-subdomain

我对我正在进行的项目有一点问题。 我想在这个项目的根文件夹中只维护一个.htaccess文件。它是模块化的,因此有许多不同的子文件夹。我目前的.htacccess看起来如下:

ErrorDocument 401 /401.php
ErrorDocument 404 /404.php
RewriteEngine On

#strip www from domain
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

#ignore existing files and directories
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule .* - [L]

# Check if query string exists
RewriteCond %{QUERY_STRING} ^$

# Check that the request is not for an existing file
RewriteCond %{REQUEST_FILENAME} !-f

问题是子文件夹中的每个404错误都会导致无限循环,因为它会查找http://mydomain.tld/modules/index.php?p=404而不是http://mydomain.tld/index.php?p=404。 我知道我可以在.htaccess中对URL进行硬编码,但问题在于它是一种社区托管平台,社区是通过子域动态指定的,我希望将请求保留在该特定子域中。 有没有办法强制.htaccess在根文件夹中使用index.php而不提供绝对URL?

提前致谢!

0 个答案:

没有答案