0

当前模式是http://example.com/questions.php?qcid=25&name=java ,我想将其http://example.com/25/java设置为qcid必须为[0-9]并且名称必须是可读和编码的。如果它包含超过 1 个单词,则它们之间必须有“-”连字符。例如面向对象的.

4

2 回答 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 回答