我的网站上有一个脚本('write-review.php'),它带有一个可选的url参数'site'。所以服务器端请求可能是:
/reviews/write-review.php
或
/reviews/write-review.php?site=foo
我正在使用.htaccess创建搜索引擎友好的URL并隐藏我的php扩展,以便对此脚本的请求分别重写为
/reviews/write-a-review/
或
/reviews/write-a-review/foo
我认为在网址中使用'foo'可能会对我的用户造成混淆,因此我正在尝试编写一个htaccess重写规则,删除'foo',同时仍然将此变量传递给我的脚本 。因此,对/ reviews / write-a-review / foo的请求将被重写为/ reviews / write-a-review /但write-review.php将被传递给'foo'。
我目前的重写规则是:
RewriteRule ^reviews/write-a-review/?$ reviews/write-review.php
RewriteRule ^reviews/write-a-review/([a-zA-Z0-9_-]+)/?$ reviews/write-review.php?site=$1
甚至可以做我上面描述的事情吗? Stack Overflow上有很多与此类似的问题,我已经阅读了至少十几个,但我还没有找到一种方法来具体做到这一点。
非常感谢任何帮助。
谢谢,
克里斯
答案 0 :(得分:0)
甚至可以做我上面描述的事情吗?
没有。要更改用户输入的实际网址,您必须执行标头重定向,在此期间您将丢失foo
。
这是不可能的,除非可能使用荒谬的技术伎俩,例如将foo
存储在会话变量中。我不建议走那条路。