【问题标题】:htaccess if file does not exist in a folder then redirect to a static pagehtaccess 如果文件夹中不存在文件,则重定向到静态页面
【发布时间】:2018-03-12 12:14:17
【问题描述】:

我有一个名为“汽车”的文件夹。在这个文件夹中有很多文件。 例如:

 mercedes.php
 audi.php
 bmw.php

使用以下重写规则,我可以打开“汽车”文件夹中的任何页面,而无需添加文件扩展名。所以我只能用car/mercedes而不是car/mercedes.php打开页面。

 RewriteRule ^car/([^\.]+)$ /car/$1.php?&%{QUERY_STRING}

这可行,但现在我正在寻找一个附加规则,如果此文件夹中不存在文件 -> 重定向到 default.php

也许是这样?

RewriteCond %{REQUEST_FILENAME}/???\.(html|php) !-f
RewriteRule ^ http://example.com/car/default.php [R=302]

有什么想法吗? 也许它不起作用,因为我的第一条规则?

【问题讨论】:

  • 如果不只存在于这个文件夹中对吧?
  • 对!仅在文件夹“汽车”中

标签: .htaccess mod-rewrite


【解决方案1】:

试试这个/car/ 目录:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^car/(.*)$   /car/default.php? [R=302]

测试一下,如果没问题,把302改成301,得到永久重定向

此外: Apache 默认会丢弃查询字符串,但如果您想附加查询字符串,您可以使用 [QSA] 标志,除非您想添加空间查询字符串。

另外,您可能注意到我在default.php 之后添加了?,它只是在错误请求时省略查询字符串。

【讨论】:

    猜你喜欢
    • 2015-09-23
    • 2011-12-25
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    相关资源
    最近更新 更多