目前,我有规则
RewriteRule ^([A-Za-z0-9-/]+)$ myFile.php?myId=$1
我希望能够访问文件夹及其文件(简单地说它叫做示例),以及它的index.php。但是,使用规则
RewriteRule ^example$ example/index.php [L]
它改为匹配第一条规则。不过,这是该文件的第一条规则。
答案 0 :(得分:1)
执行重写规则后,example
URL将重写为example/index.php
,然后重新进入重写过程([L]
标记不要阻止)。然后,您的其他重写规则匹配。
因此,您必须为example/index.php
添加例外。例如:
RewriteRule ^example/index.php$ - [L]
终止第二次重写运行。请务必将其插入其他规则之上。
答案 1 :(得分:0)
您可以使用条件:
RewriteCond %{REQUEST_URI} !^/example
RewriteRule ^([A-Za-z0-9-/]+)$ myFile.php?myId=$1 [L]
这样您就可以获得规则匹配,除非请求以'/ example'开头。您可以添加额外的斜杠,即'/ example /'以避免不匹配'/ example-page'。