我在php开发一个网站,这是我第一个使用php的网站,而且我是php的新手。
该网站包含2个页面,index.php和info.php
index.php具有以下形式,
<form action="info.php" method="get">
<input type="text" name="username" />
<input type="text" name="company" />
<input type="email" name="email" />
<button type="submit">Click to Proceed!</button>
</form>
当用户输入并提交详细信息时。它重定向到下一页,url包含查询字符串,如
http://localhost/info?username=john&company=zend&email=beast@example.com
我想像这样显示上面的网址,
http://localhost/info/john/zend/beast@example.com
并使用$_GET['username'],$_GET['company'] and $_GET['email']
我尝试了很多重写规则,包括下面的htaccess,
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([\d\w-]+)$ info?username=$1&company=$2&email=$3 [L,QSA]
RewriteRule ^([\d\w-]+)$ info?username=$1&company=$2&email=$3 [QSA]
RewriteRule ^(.*)$ info?username=$1&company=$2&email=$3 [L,QSA]
RewriteRule ^([a-zA-Z0-9-/]+)/([0-9]+)$ info?username=$1&company=$2&email=$3 [L,QSA]
RewriteRule ^([a-zA-Z0-9-/]+)/([0-9]+)$ info?username=$1&company=$2&email=$3 [QSA]
但没有任何作用。
我也试过了this和Clean URLs for search query?。
有人会帮我解决这个问题。
答案 0 :(得分:2)
流程就是这样。
将您的表单提交至route.php
这是route.php的代码
if(isset($_GET['username']) && isset($_GET['company']) && isset($_GET['email']) )
$url = '/info/'.$_GET['username'].'/'.$_GET['company'].'/'.$_GET['email']
header('Location: '.$url);
在.htaccess中
RewriteRule ^info/(.+)/(.+)/(.+)$ info.php?username=$1&company=$2&email=$3 [L,QSA]
答案 1 :(得分:0)
如果重写正常,请检查一个简单的规则。确保已启用重写模块。
RewriteRule ^info/(.+)/(.+)/(.+)(/*)$ info?username=$1&company=$2&email=$3 [L,QSA]