2014-10-10 44 views
1

我不知道我是否正确地处理这个问题。基本上我有一个URL

www.mydomain.com/openings.html?jobName=accounting-manager

我想要的网址是

www.mydomain.com/开口/会计manager.html

所以,我已将此添加的.htaccess

重写规则^开口/([^ /] *)。HTML $ /openings.html?\ jobfilename = $ 1 [L]

所以URL按预期工作。现在,我想阅读此页面上的$ _GET ['jobName'],以便我可以在页面上打印它。但是在URL重写之后$ _GET变量不存在。有没有办法访问?我是否需要改变重写,还是应该以不同的方式处理这个问题?

谢谢。

+0

什么是'?\ j'转义位?这个''[space]'没有理由在url中,因为它会成为查询参数名称的一部分。例如你需要访问'$ _GET ['\\ jobfilename']',因为'\ [space]'对于url系统没有任何意义。 – 2014-10-10 20:16:34

+0

所以它应该是? RewriteRule^opening /([^ /] *)。html $ /openings.html?jobfilename=$1 [L] – Blueboye 2014-10-10 20:18:01

+0

看起来更好。您也可以在脚本中执行'var_dump($ _ GET)'来查看脚本接收到的所有查询输入。 – 2014-10-10 20:19:55

回答

0

使用此代码

<?php 
$url=explode("/", $_Server['request_url']); 
print_r($url); 
?> 

,你会看到一个数组包含URL

1

其原因很可能是多视图已启用。将它放在.htaccess文件的顶部。

Options -MultiViews 

还检查出QSA您的规则标志。

+0

[QSA] - 查询字符串追加也是我想到的:https://wiki.apache.org/httpd/RewriteFlags/QSA – Jonathan 2014-10-10 21:13:22