Mod rewrite mod#u rewrite:如何根据';可用性';?

Mod rewrite mod#u rewrite:如何根据';可用性';?,mod-rewrite,directory,rewrite,pattern-matching,Mod Rewrite,Directory,Rewrite,Pattern Matching,你好,久违的听众,第一次打电话过来 谢谢你们分享的宝贵建议 我已经设置了这些mod_重写规则: RewriteRule ^([^/.]+)/([^/.]+)/?$ $1--$2.php?%{QUERY_STRING} [L] RewriteRule ^([^/.]+)/?$ $1.php?%{QUERY_STRING} [L] 他们将/company/services/重定向到company--services.php。或/company/to company.php。工作完美 但现在我想使用

你好,久违的听众,第一次打电话过来
谢谢你们分享的宝贵建议

我已经设置了这些mod_重写规则:

RewriteRule ^([^/.]+)/([^/.]+)/?$ $1--$2.php?%{QUERY_STRING} [L]
RewriteRule ^([^/.]+)/?$ $1.php?%{QUERY_STRING} [L]
他们将/company/services/重定向到company--services.php。或/company/to company.php。工作完美

但现在我想使用另一条规则,如果我将services.php放入物理目录/company/中,它将匹配并重定向该目录。如果失败了,请寻找我的初始规则。(否则,返回404。)

我想这很简单,包括:

RewriteRule ^([^/.]+)/([^/.]+)/?$ $1/$2.php?%{QUERY_STRING} [L]
但事实并非如此。它将返回404。我有点困惑,因为这与我认为mod_重写可以工作的方式背道而驰(如果一条规则不匹配,请转到下一条规则)

谢谢你的指点

找到了。供参考,这是一套完整的规则:

RewriteCond %{DOCUMENT_ROOT}/$1/$2.php -f
RewriteRule ^([^/.]+)/([^/.]+)/?$ /$1/$2.php?%{QUERY_STRING} [L]
RewriteRule ^([^/.]+)/([^/.]+)/?$ $1--$2.php?%{QUERY_STRING} [L]
RewriteRule ^([^/.]+)/?$ $1.php?%{QUERY_STRING} [L]

不需要附加查询字符串。