我对我正在进行的项目有一点问题。 我想在这个项目的根文件夹中只维护一个.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?
提前致谢!