我很难理解为什么这个重写没有按照它的要求做。注意:我的 .htaccess 文件中的第一次重写工作正常,因此在本地主机上使用 mod_rewrite 没有问题。
我有 URI,我知道这些 URI 将采用以下格式:
http://localhost/managerhub/my-manager.php?i=1&t=dashboard
网站上线时:
http://themanagerhub.com/my-manager.php?i=1&t=dashboard
我的 .htaccess 文件是这样写的:
RewriteEngine On
RewriteRule ^([a-z\-]+)$ $1.php [L]
RewriteRule ^my-manager-([0-9]+)-([a-z]+) my-manager.php?i=$1&t=$2 [PT]
要实现干净的 URL,例如:
http://localhost/managerhub/my-manager-1-dashboard
理想情况下,我真的不想要第一个捕获组([0-9]+),因为我真的不想要得到的干净 url 中的 'i' 值 - 所以理想的 id 像:
http://localhost/managerhub/my-manager-dashboard
但是,到目前为止,我什至根本没有尝试过重写工作:
- 在目标上领先正斜杠(尽管我认为没有必要)
- 尝试将目标中的“&”符号更改为使用 &
- 删除替换为和不替换 [L] 标志的 [PT] passthru 标志
- 尝试了模式中的大多数“最少”限制性字符类,即 (.*) 而不是 ([0-9]+)
- 评论'out'第一个 RewriteRule 可以完美地工作顺便说一句 - 所以孤立地使用麻烦的规则
这些都不起作用 - 第二个重写规则对目标 url 没有影响,所以我什至看不到差异是什么。我还是 mod_rewrite 的新手,所以有点依赖信息失败,所以我可以解决我的 reg-ex 是否错误,但我怀疑它只是被忽略了,因为我得到了“zilch”!
任何帮助表示赞赏 - 也许指向我的愚蠢。谢谢