.htaccess,一个文件两条规则,白页

.htaccess, two rules for one file, white page

这是我的 .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ /index.php?u=
RewriteRule ^([^/]*)/([^/]*)$ /index.php?u=&c= [L]

如果我没有第二个参数 c=something,它就不起作用。像 mydomain.com/something = 白页,mydomain.com/something/ 再次有效。我该怎么做才能使第一个参数有效?

这样说:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/?$ index.php?u= [L,QSA]

RewriteRule ^([^/]+)/([^/]+)/?$ index.php?u=&c= [L,QSA]
  • RewriteCond只适用于下一个RewriteRule.
  • 最好在每个规则后使用 L 标志。