htaccess - 无法再直接加载文件

时间:2016-06-15 00:09:29

标签: .htaccess mod-rewrite

我喜欢这个htaccess:

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /?p=$1&title=$2 [L]

所以我可以将example.com/123/hey重写为example.com/?p=123&title=hey

但现在我无法再直接调用example.com/pics/jo.jpg这样的文件

有没有办法直接调用文件并通过修改htaccess或其他东西保留重写规则?

1 个答案:

答案 0 :(得分:0)

您无法呼叫/pics/jo.jpg的原因是因为您的模式^([^/]*)/([^/]*)$符合此表单/foo/bar的所有请求,因此请求/foo/bar.jpg时您的规则将其重写为/?p=foo&title=bar.jpg。要解决此问题,您需要使用RewriteConds

从规则中排除现有文件和目录
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)$ /?p=$1&title=$2 [L]