我有 2 页广告.php和 Gidc.php如果他们有 user="some value",它们就可以工作例如:
example.com/advertisement_final_page.php?user=sumeet
和
example.com/gidc_final_page.php?user=nikhil
我希望 htaccess 的代码将其重定向到上面的页面:
example.com/sumeet
和
example.com/nikhil
我的数据库是:
编号 1
类型广告
用户苏米特
联系651651
老板苏米特·帕特尔
网站 asdfkjh.com
电子邮件 sdfjh@skdj.com
地址 SKJDF, SDD, SDH
编号 2
吉德克型
用户尼基尔
联系651651
老板尼基尔·帕特尔
网站 sadfjh.com
电子邮件 sdf@sdhf.com
地址 SKJDF, SDD, SDH
我的访问规则:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)$ advertisement_final_page.php?user=$1
RewriteRule ^([a-zA-Z0-9_-]+)$ gidc_final_page.php?user=$1
但是通过上面的代码,它可以到达advertisement_final_page.php页面。就像我输入一样
example.com/nikhil
它重定向到
example.com/advertisement_final_page.php?user=nikhil
规则中的模式似乎是相同的。重写引擎将匹配它能匹配的第一个规则,在本例中为第一个规则。
您可能应该编写一个将所有请求重定向到的控制器文件。然后从$_GET['user']
读取所需的用户,从数据库中读取用户的数据,并根据用户的Type
重定向/包含相应的PHP文件。
仅当之前的匹配项错误时,才会处理您的第二个匹配项。在这种情况下,两者都是相同的,第一个始终为 TRUE。因此,加载advertisement_final_page.php?user=nikhil
,跳过剩余的行。
你可以说出你真正想要实现的目标,让我们指导你。
------------------------编辑------------------------
根据您的需要,您可以执行以下操作:
RewriteRule ^([a-zA-Z0-9_-]+)$ redirect.php?user=$1
在重定向.php中,您可以编写:
$u = $GET['user'];
if( $u == 'sumeet'){
header('location: advertisement_final_page.php?user=sumeet');
} else if ( $u == 'nikhil') {
header('location: gidc_final_page.php?user=nikhil');
}
但请理解,此代码不是标准代码。为了使此代码更好,您需要检查数据库中的$user
,然后相应地重定向,而不是使用if()
来比较所有名称。
为此,您可以使用表,如下所示:
+------------+---------------------------------------+
| username | redirect_url |
+------------+---------------------------------------+
| nikhil | gidc_final_page.php?user= |
+------------+---------------------------------------+
| sumeet | advertisement_final_page.php?user= |
+------------+---------------------------------------+
| alice | gidc_final_page.php?user= |
+------------+---------------------------------------+
| .... | .... |
+------------+---------------------------------------+
我希望这会帮助你:-)