我正在尝试改变我们目前在CMS中提供网关页面系统的方式。网关页面的意思是通过.htaccess中的重写规则将不存在的URL映射到页面,例如。
RewriteRule ^foobar$ page.php?mode=bar&method=foo&id=1
这允许人们为杂志广告等创建CMS页面的短链接。此方法的问题在于它依赖于对.htaccess的访问。我更喜欢一种位于代码级别的方法,但我发现 - 如果没有重写规则 - 将调用404错误。有没有办法阻止这种情况或解决这个问题?
答案 0 :(得分:4)
您可以在htaccess中使用重写地图。这样做是引用一个外部文件/脚本,将传入的uri传递给它并返回重写的uri。
在.htaccess中
RewriteMap shorts prg:/path/to/map.php
在你的php文件map.php
中#!/path/to/php
$keyboard = fopen("php://stdin","r"); // get data from stdin
while (1) {
$line = trim(fgets($keyboard));
// fetch rewrite for line and echo out
}
php文件传递短网址并根据您的逻辑返回 - 完整网址