如何使用Mod_rewrite从URL创建ID?

时间:2014-01-30 11:37:36

标签: php .htaccess mod-rewrite

在我的.htaccess文件中,我有以下代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteRule (.*) ./index.php?id=$1 [L]
</IfModule>

在我的index.php中,我有以下代码:

<?php
$id_1 = isset( $_GET['id'] ) ? rtrim( trim( $_GET['id'] ), '/' ) : 'default';
?>

目前,如果我使用以下格式的网址

http://mydomain.com/directory/name/

modrewrite抓取/ name / as $ id_1

我想更改网址格式以获取第二个$ id_2,如下所示

http://mydomain.com/directory/1/name/

我的问题是如何更改modrewrite和php代码以捕获$ id_1和$ id_2

1 个答案:

答案 0 :(得分:1)

RewriteRule ^([^/]+)/?$ index.php?id_1=$1 [L,QSA]

RewriteRule ^([^/]+)/([^/]+)/?$ index.php?id_1=$1&id_2=$2 [L,QSA]

QSA表示query_string_add,所以如果你要求

http://mydomain.com/directory/1/name/?foo=bar 重写引擎将转换为 http://mydomain.com/directory/?id_1=1&id_2=name&foo=bar