嘿我试图对搜索引擎友好的网址进行模式重写,如果找不到该文件,则会解析为404页面。当我将其用于不能解析为文件的目录(即搜索/ .php)时,因为找不到匹配项,所以当找到匹配项时它不起作用。
基本上我需要它来当你去url / search /时,如果有一个索引页面,url / search / filename应解析为搜索目录中的filename.php。有谁知道怎么做到这一点?
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? - [S2] #file not found, skip to 404
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule .? - [S1] #file found, ignore redirect to 404
RewriteRule (.*) 404.php?file=$1
答案 0 :(得分:2)
为什么不呢:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) 404.php?file=$1 [L]
而不是所有这些跳过?