我想在分页系统下重写我的动态PHP页面。我在PHP环境中。我尝试使用.htaccess但没有正常工作的代码。
我的动态网页: mysite/article.php?scid=9&page=1
page=2
,page=3
等等。
我希望它们是静态的:
mysite/mobile-phone_technical-spec_google-nexus-1
mysite/mobile-phone_technical-spec_google-nexus-2
等等。
(每个id具有不同的名称)
答案 0 :(得分:0)
我认为有两种方法可以解决这个问题。取决于您能够修改代码的位置。
答强>
我会修改article.php以接受title作为参数。在article.php里面将标题翻译成你想要的ID。
article.php?title=mobile-phone_technical-spec_google-nexus&p=2
然后你的重写规则可能是:
RewriteRule ^mysite/([^/]+)/([0-9]+)/?$ article.php?title=$1&p=$2 [L,QSA]
示例article.php和.htaccess添加到pastebucket
<强> B:强>
其次,您可以在.htaccess文件中使用RewriteMap来调用自定义Perl脚本,该脚本将执行从标题到ID的转换。
在文件系统中创建一个脚本文件(即getid.pl
),返回标题的id。
RewriteMap title2id prg:/www/bin/getid.pl
RewriteRule ^mysite/([^/]+)/([0-9]+)/?$ article.php?id=${title2id:$1}&p=$2
我认为如果可以,你应该避免使用Alt.B,导致次优脚本可能会带来更多风险和潜在的性能问题。