我创建了这条规则:
RewriteRule ^([^/]+)/?$ gallery.php?name=$1 [L,QSA,NC]
但它仍然影响index.php文件。所以我尝试添加这条规则:
RewriteRule ^/?$ index.php [L,QSA,NC]
没有结果。
可以告诉mod_rewritte忽略文件吗?
答案 0 :(得分:1)
是的,您可以使用否定前瞻:
RewriteRule ^((?!index\.php)[^/]+)/?$ gallery.php?name=$1 [L,QSA,NC]
或使用否定RewriteCond
来获得相同效果:
RewriteCond %{REQUEST_URI} !^/index\.php$ [NC]
RewriteRule ^([^/]+)/?$ gallery.php?name=$1 [L,QSA,NC]
或者只是避免此规则中的所有文件/目录:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ gallery.php?name=$1 [L,QSA,NC]