我正在努力完成以下比赛:
remote_connect_back
我只能显示author_id,就像这样:
/author.php?author_id=4&author=joe
/joe
但我不清楚如何从那里开始。
由于
答案 0 :(得分:0)
如果我理解你的问题:
您的问题基本上是在尝试从公共URI加载两个变量,而这些变量只包含一个变量:
浏览器使用指向/joe
的链接,因此htaccess需要从此单值文本链接中发现author_id
和author
值。
这显然无法做到。
此类问题会导致流行的mod_rewrites对其网址进行“文件管理”,例如/author/4/joe
,因此URI中会显示所需信息的两个方面(4
和{{1}但是URI仍然是“友好的”。
将此形式的解决方案应用于您的给定URI:
joe
RewriteRule ^/author/([0-9]+)/?(.*)$ /author.php?author_id=$1&author=$2 [NC,L]
==仅限文件夹,对于用户清晰度有用(谁或乔是什么?)。( /author/
文件夹仅用于说明目的。此文件夹不存在。)/author/
==仅限数字值,保存在括号中,以便稍后用作第一个变量(([0-9]+)
)从左到右阅读。$1
表示贪婪,在达到非数字之前需要尽可能多的字符(此案例数字)+
==表示可选字符(本例为斜线)/?
==第二个已保存字符串((.*)
)的括号,任意长度($2
)的任何字符(.
)的此时间。*
==美元符号显示要重写的URI字符串的结尾。这将有一个URI $
,它将加载页面(隐藏在浏览器中)/author/4/joe
。
其他变体包括/author.php?author_id=4&author=joe
或/4-joe
等网址等等,每个变体都包含/4joe
页面的两条必需数据。