我想知道如何通过URL在页面之间传递参数,而不必添加变量,例如:
mydomain.com/file.php?var1=val1&var2=val2&...varN=valN
我想按如下方式使用它:
mydomain.com/file.php?val1-val2-...-valN
我也在某些网站上看到网址采用以下格式
mydomain.com/file/####
重定向到另一个页面而不更改URL,就好像这是文件的URL。
答案 0 :(得分:12)
你应该使用.htaccess
以下是一个例子:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([0-9-_]+)/([a-zA-Z0-9-_]+)/?$ index.php?var1=$1&var2=$2 [NC,L]
这基本上意味着如果根据上面的正则表达式(数字 - 斜杠 - 字母数字,短划线或下划线)格式化URL,则应该从index.php中显示内容,同时传递文件名为var1和var2的两个参数, var1具有数字的值,第二个具有第一个斜杠之后的值。
示例:
mysite.com/20/this_is_a_new_article/
实际上意味着
mysite.com?var1=20&var2=this_is_a_new_article
当然,在index.php文件中,您只需使用
获取值即可$var1 = $_GET['var1'];
$var2 = $_GET['var2'];
干杯!
答案 1 :(得分:0)
您的第三个示例是REST如何识别服务器端资源的示例。你在这里谈论的内容听起来非常像REST会做你想要的。我建议从这里开始(http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_web_services)。