我目前有两条规则可以正常运行,但我觉得它们可以合并为一条,以便维护更小的配置和更少的规则来处理每个 HTTP 请求。规则:
RewriteRule ^/user/[0-9]+/?$ /index.php [NC,QSA,L]
RewriteRule ^/user/[0-9]+/(.*)$ /$1 [NC,QSA,L]
我必须添加第一个带有显式重定向的规则,/index.php
因为例如,去http://www.example.com/user/5/
会给我一个 HTTP 400。重写将在内部重写到/
,但不是读取 DirectoryIndex,而是index.php
error_log 会给我:client denied by server configuration: /
。
将显式重定向添加到/index.php
诸如http://www.example.com/user/5/
第二条规则之类的固定 URL 将适用于其他所有内容。
有没有办法将配置设置为正常使用DirectoryIndex
我设置的而不是在这里明确列出 index.php?http://www.example.com
没有重写规则就可以正常工作,所以我不完全确定为什么重写会破坏它。