2013-02-06 82 views
-1

传入的URL国防部重写,htaccess以及gettign值

domain.com/12/3

应重新写入

域.com /?w = 12 & h = 3

htaccess的

RewriteEngine on 
RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?w=$1&h=$2 [QSA] 

的PHP

<?php 
echo $_GET['h']; 
?> 

结果

404页

我试过使用htaccess来更改url的结果,然后从URL中检索值,有人可以帮我吗?

+0

您是否正常地获得'$ _GET ['w']? – Sammitch

+0

使用?w = 3&h = 4是的,它工作 – ngplayground

+0

/index.php ...正如克里斯解释的 – 2013-02-06 16:26:05

回答

-1
RewriteEngine On 
RewriteRule ^(.*)/(.*)$ index.php?w=$1&h=$2 [QSA] 

上面分类了它。感谢您的回复

1

也许你需要逃跑-,如:

RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_\-]+)$ index.php?w=$1&h=$2 [QSA] 

PS。我希望上面的网址/ 12/3只是举例,因为你的正则表达式只接受AZ

+0

转义'-'对我来说没有意义,但是你的PS是正确的答案。我不能相信我错过了这一点。 – Sammitch

+0

'-'是一个像'。*()[]&^'这样的正则表达式字符,无论何时使用,都需要进行转义! – Birla

0
RewriteEngine On 
RewriteRule ^[a-z]{2,2})/([a-zA-Z0-9_-]+)$ /index.php?w=$1&h=$2 [QSA] 

从本质上讲,我敢肯定你需要一个/ index.php的在前面

我喜欢使用这个生成器来执行我的mod重写规则。

http://www.generateit.net/mod-rewrite/

+0

'/'不是强制性的,尽管它使URL更加明确我猜 – Birla

0

试着改变你的重写规则于以下内容:

RewriteEngine on 
RewriteRule ^([a-z0-9]{2})/([a-zA-Z0-9_-]+)$ /index.php?w=$1&h=$2 [QSA] 

你的例子有两个数字作为路径的第一部分,这将不会被[a-z]匹配。