0

我有 2 个页面 Advertisement.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

所有者 Sumeet Patel

网站 asdfkjh.com

电子邮件 sdfjh@skdj.com

地址 skjdf, sd, sdh

编号 2

类型Gidc

用户nikhil

联系 651651

所有者 尼基尔·帕特尔

网站 sadfjh.com

电子邮件 sdf@sdhf.com

地址 skjdf, sd, sdh

我的 htaccess 规则:

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

但是通过上面的代码,它到达了advertising_final_page.php 页面。就像我进入

example.com/nikhil

它重定向到

example.com/advertisement_final_page.php?user=nikhil
4

2 回答 2

2

您的规则中的模式似乎是相同的。RewriteEngine 将匹配它可以匹配的第一个规则,在这种情况下是第一个。

您可能应该编写一个控制器文件,将所有请求重定向到该文件。然后从 中读取所需$_GET['user']的用户,从您的数据库中读取用户的数据,并根据用户的Type.

于 2012-06-12T10:13:45.380 回答
1

仅当先前的匹配错误时才会处理您的第二场匹配。在这种情况下,两者都是相同的,并且第一个始终为 TRUE。因此,advertisement_final_page.php?user=nikhil已加载,并跳过剩余的行。

您可以说出您真正想要实现的目标,让我们为您提供指导。:-)

- - - - - - - - - - - - 编辑 - - - - - - - - - - - -

根据您的需要,您可以执行以下操作:

RewriteRule ^([a-zA-Z0-9_-]+)$ redirect.php?user=$1

在redirect.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=       |
+------------+---------------------------------------+
|     ....   |                  ....                 |
+------------+---------------------------------------+

我希望这会帮助你:-)

于 2012-06-12T10:18:09.603 回答