当前模式是http://example.com/questions.php?qcid=25&name=java
,我想将其http://example.com/25/java
设置为qcid必须为[0-9]并且名称必须是可读和编码的。如果它包含超过 1 个单词,则它们之间必须有“-”连字符。例如面向对象的.
问问题
125 次
2 回答
1
这将采用任何以数字开头的 url,然后是斜杠,然后是任何内容,然后将它们转换为如上所示。但是,如果您需要某种 url 编码/解码,则必须在 questions.php 脚本中处理该位
RewriteRule ^(\d+)/(.+) /questions.php?qcid=$1&name=$2 [NC,L]
于 2012-11-21T07:54:56.507 回答
1
在 .htaccess
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([0-9]+)/([a-z0-9\-]+)(?!(.css)|(.js))$ questions.php?qcid=$1&name=$2 [NC]
在 php 中,您需要捕获名称并去除连字符并在需要时修复大写字母。例如,假设我们希望名称为小驼峰式:
$_GET['name'] = "this-is-a-test-name";
$name = '';
$exploded = explode('-',$_GET['name']);
foreach($exploded as $piece) {
$name .= ucfirst($piece);
}
// If you have PHP >= 5.3
// $name = lcfirst($name);
// Otherwise
$name{0} = strtolower($name{0});
echo $name;
于 2012-11-21T07:58:50.080 回答