这是我现有的 .htaccess 文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond {REQUEST_FILENAME} !^images
RewriteRule ^files(.+)$ ../../fileManager/server/php/files/$1 [L]
RewriteRule ^(.+)$ subpage.php?url=$1 [QSA,L]
我会尽力解释这一点,但不会让它过于复杂。最终,归结为:
如果 URL 在根 URL 之后立即包含“/files”(即:http://www.someurl.com/files/username/myFile.jpg),那么它应该将用户定向到特定 URL(在这种情况下: ../../fileManager/server/php/files/$1)。
使用第二条规则,如果 URL 在根 URL 之后包含除“/files”以外的任何内容,则将它们定向到“subpage.php”。(即: http: //www.someurl.com/aboutme)
这两个都工作得很好。然而,有了这两个规则,我永远无法访问 / 或 /index.php(根 URL: http: //www.someurl.com)。我不断被重定向到 subpage.php。
可是等等!还有更多!
如果我删除第一个 RewriteRule 行:
RewriteRule ^files(.+)$ ../../fileManager/server/php/files/$1 [L]
...然后第二个重写规则按我的意愿工作,如果我转到 / 或 /index.php,它会将我带到那里,但如果我转到任何其他 URL,它会将我定向到 subpage.php。
所以我不明白的是:为什么里面有两个 RewriteRule,我无法访问 index.php,但只有第二个 RewriteRule,我可以?
此外,任何人都可以就我如何解决这个问题提供任何建议吗?
任何信息,将不胜感激!提前致谢!