我有以下mod_rewrite行(它是.htaccess文件中的唯一行)。当我将第一个名称更改为login
以外的某个名称时有效,但由于某种原因,它与$_GET['initials']
的名称与实际脚本名称相同时无法通过。它以某种方式覆盖自己的重写?
RewriteRule ^login/([a-z]{1,5}) login.php?initials=$1 [L]
编辑:
望着$ _ SERVER,这是一个PHP结束加载页面:
'PHP_SELF' => string '/admin/login.php/abc' (length=19)
其中 'ABC' 是提供intitials。所以它完全删除查询字符串并尝试加载该页面,该页面以某种方式加载login.php而不是404,即使/ abc目录不存在?
是否添加了$ work? 'RewriteRule^login /([a-z] {1,5})$ login.php?initials = $ 1 [L]'你有'RewriteBase /'set吗? – Benno
没有,但仍然失败..我没有RewriteBase设置,第一次我听说过它.. – Matthew
值得注意的是.htaccess是在一个子目录中,而不是基本的apache目录。 – Matthew