2014-03-13 86 views
0

我遇到了一个问题.htaccess和数字。Htaccess跳过空白行问题

我有一个目录

 http://somedomain.com/directory/ 

当我将号码添加到它,我想用htaccess的创建一个变量。

 http://somedomain.com/directory/ 

     RewriteRule ^[0-9]+$ index.php?action=viewclient&clientnumber=$1 [L] 

当我把这个网址,我想clientnumber要创建

 http://somedomain.com/directory/5 

然而,当我把它没有数字,但它仍然会创建一个空白$clientnumber$action变量。

 http://somedomain.com/directory/ 

是否有变化,我需要作出htaccess的,以添加这些变量,如果在URL,但空白的一个数字。如果未添加变量,则跳过此htaccess行。

Thankyou

编辑:我不能得到的URL的工作。从提供的答案。我在睡觉&将重新检查这个周末。

如果我把/目录/我得到我想要的。如果我把/目录/ 4或目录/ 87(任何数字)我得到一个404错误。

EDIT2 - WEIRD ???

我正要睡觉,但决定再次尝试&选择了不同的客户端。这些网址是相同的格式。

某些客户端工作(显示正确的页面),其他URL(正确的URL),显示404页面。

我会尝试&在周末调试更多。 - 很奇怪。 (我会在我的index.php顶部添加一个调试脚本/日志 - 以查看页面是否加载。)

编辑3: - 我在索引顶部添加了一个小日志脚本.php - 它记录有效/工作的URL,但不激活,如果它的404错误(错误是同一格式的URL - 所以应该激活index.php - &然后我的index.php应该做计算/检查。看是否值是有效的,但它不是甚至还让我的PHP脚本

OK,我要去睡觉了 - 将在周末重新尝试

+0

你可以在你的index.php中设置动作,如 'if(!isset($ _ GET ['clientnumber'])){DO_REDIRECT_HERE}' –

+0

W这里是你的.htaccess文件相对于目录?您是否为该位置设置了AllowOverride All?你确定设置了'RewriteEngine On'(IE正在执行RewriteRules)。 – DorianFM

回答

0
RewriteRule ^[0-9]+$ index.php?action=viewclient&clientnumber=$1 [L] 

。是指第一个捕获组。您的正则表达式中没有任何捕获组。这是正确的:

RewriteRule ^([0-9]+)$ index.php?action=viewclient&clientnumber=$1 [L] 
-1

改变它

RewriteRule ^([0-9])$ index.php?action=viewclient&clientnumber=$1 [L]

(无+后[0-9])

将意味着规则只执行数0-9在请求中存在

+0

对不起,我误解了你的问题,主要关注于这个问题:“如果网址中有一个数字,我是否需要对htaccess进行更改以仅添加这些变量” – DorianFM