1

我有以下代码,它采用像“www.example.com/foo”这样的网址并将其重写为“www.example.com/html/foo.php”

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^([^\.]+)$ html/$1.php [NC]

我想修改这个,如果重写的 url: 'www.example.com/html/foo.php' 不存在,则 url 被重写为 'www.example.com/html/fallback.php?query=富'

我已经转了几个小时了。有什么解决办法吗?

4

1 回答 1

3

您可以尝试先检查文件是否存在(使用-f),然后再进行您拥有的重写:

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_URI} ^([^\.]+)$
RewriteCond %{DOCUMENT_ROOT}/html/%1.php !-f
RewriteRule ^ html/fallback.php?query=%1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ html/$1.php [L]
于 2013-02-14T23:26:28.980 回答