【问题标题】:How to rewrite a URL pointing to a folder that doesn't exist to a file?如何重写指向文件不存在的文件夹的 URL?
【发布时间】:2014-03-09 02:37:44
【问题描述】:

我有文件夹 /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 中的代码才能完成工作?

谢谢!

【问题讨论】:

    标签: .htaccess mod-rewrite url-rewriting rewrite http-status-code-404


    【解决方案1】:

    您的规则实际上并不正确。因为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]
    

    【讨论】:

      猜你喜欢
      • 2014-02-08
      • 2017-02-13
      • 1970-01-01
      • 2019-10-09
      • 2013-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多