我有一个名为“car”的文件夹。在这个文件夹中有很多文件。 例如:
mercedes.php
audi.php
bmw.php
使用以下rewriterule,我可以打开“car”文件夹中的任何页面而不添加文件扩展名。所以我只能用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]
有什么想法吗? 也许它不起作用,因为我的第一条规则?
答案 0 :(得分:0)
在/car/
目录中尝试此操作:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^car/(.*)$ /car/default.php? [R=302]
测试一下,如果确定,请将302
更改为301
以获得永久重定向
此外: Apache默认情况下会丢弃查询字符串,但是如果要追加查询字符串,则可以使用[QSA]
标记,除非您要添加空格查询字符串。
另外,您可能会注意到我在?
之后添加default.php
只是在错误请求时省略了查询字符串。