.htaccess 如何重写指向不存在';不存在于文件中吗?

.htaccess 如何重写指向不存在';不存在于文件中吗?,.htaccess,mod-rewrite,url-rewriting,rewrite,http-status-code-404,.htaccess,Mod Rewrite,Url Rewriting,Rewrite,Http Status Code 404,我有文件夹/aaa/。当用户访问URL/aaa时,我的服务器应该返回文件/aaa/aaa.html的内容。因此,我在/.htaccess中使用以下代码来完成这项工作。它起作用了 DirectorySlash Off RewriteEngine on RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(aaa)$ /aaa/aaa.html [L] 我没有文件夹/aaa/bbb/。当用户访问URL/aaa/bbb时,我的服务器应返回文件/aaa/bb

我有文件夹/aaa/。当用户访问URL/aaa时,我的服务器应该返回文件/aaa/aaa.html的内容。因此,我在/.htaccess中使用以下代码来完成这项工作。它起作用了

DirectorySlash Off
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(aaa)$ /aaa/aaa.html [L]
我没有文件夹/aaa/bbb/。当用户访问URL/aaa/bbb时,我的服务器应返回文件/aaa/bbb.html的内容。我在/.htaccess中使用了以下代码来尝试完成这项工作。但它不起作用。它显示404页

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(aaa\/bbb)$ /aaa/bbb.html [L]
我认为此代码无法工作的原因是/aaa/bbb/文件夹不存在。我不想创建文件夹/aaa/bbb/。我想在/.htaccess中编辑代码以完成工作。我应该如何更改/.htaccess中的代码以完成该工作


谢谢大家!

你的规则实际上并不正确。由于
RewriteCond%{REQUEST_FILENAME}-d
表示现有目录,而
/aaa/bbb
不是目录

请尝试以下代码:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(sub)/?$ /sub/try.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(sub/bbb)/?$ /sub/foo.php [L]