所以我刚刚开始在我的网站上使用重写规则,而且我遇到了意想不到的问题。
我正在改变
的链接 http://localhost:8888/study.php?deckid=1101&studymethod=colorcoded&decksetting=deck
至
http://localhost:8888/study/1101/colorcoded/deck
这打破了很多我的链接。 所以我把它改成了这个
http://localhost:8888/study-1101-colorcoded-deck
这是不好的做法吗?或者也许在我的原始文件中,我应该修改它们从$_SERVER["DOCUMENT_ROOT"]
这是我目前的重写代码:
RewriteRule ^study/([0-9]+)/(.*)/(.*)$ study.php?deckid=$1&studymethod=$2&decksetting=$3 [NC,L]
RewriteRule ^study-([0-9]+)-(.*)-(.*)$ study.php?deckid=$1&studymethod=$2&decksetting=$3 [NC,L]
目前问题是:
使用斜杠版本时,我的链接(<img src="../../img/picture.png">
)
正在尝试从studymethod
而不是根文件夹中提取链接。
基本上,使用$_SERVER["DOCUMENT_ROOT"]
更新所有链接或仅使用短划线( - )更好。
或者只要它有效,它真的不重要吗?
答案 0 :(得分:0)
两者显然都有效。
但一般情况下,您使用/
将动作与您正在谈论的项目分开,例如/read/101-psychology
或/title/70143844
。如果您有嵌套操作,则会有多个斜杠:/admin/update/113242
。
最终虽然取决于你。
在您的特定情况下,我会使用/study/deck/1101?method=colorcoded
或类似的东西。你的行动正在研究一个套牌,项目是1101.其他任何东西都只是参数。实际上我甚至不会将它们存储为查询字符串的一部分,我会将它们放在会话对象(/study/deck/1101
)中。