【发布时间】:2011-02-20 07:53:50
【问题描述】:
我正在尝试使用 PHP 在 URL 中添加斜杠。它不能用 mod_rewrite 完成,因为我在 .htaccess 中有类似的东西:
RewriteRule ^page/(.*)$ index.php?page=$1 [L]
我想验证该页面在 301 重定向之前是否存在,并带有斜杠。
现在我在验证后使用此代码:
if(substr($_GET['page'], -1) !== '/')
header('Location: http://example.com/'.$_GET['page'].'/'.$_SERVER['QUERY_STRING'],TRUE,301);
但是有没有更好的方法呢?
【问题讨论】:
-
我不明白你可以把它作为一个mod重写吗?
-
我不想为不存在的页面添加尾部斜杠,例如example.com/page/fokwaofkw 变为 example.com/page/fokwaofkw/
-
你如何检查请求的资源是否存在?
-
假设请求是
/page/1,实际上是/index.php?page=1,我需要验证页面“1”是否存在于我的数据库中,然后再使用斜杠进行重定向 -
通常你会使用 apache RewriteConditions 来做到这一点。但是,如果您坚持只为坚持的
page在网址中添加斜杠,则只有在验证页面存在后才能在代码中执行此操作。
标签: php mod-rewrite