1

我有一个形式的网址:

www.example.com/r/abc/1234

我想重写为:

www.example.com/r.php?deb=abc&id=1234

还有另一个网址:

www.example.com/r/12bcd-qsqs-343-wdwd/1234

应该重写为:

www.example.com/r.php?abc_id=12bcd-qsqs-343-wdwd&id=1234

这两个规则都应该由 .htaccess 处理。有什么建议么?

4

2 回答 2

1

尝试类似:

RewriteRule (.*)/(.*)/(.*)$ path_to_php_files/$1.php?deb=$2&id=$3 [QSA,L,NC]

不幸的是,使用此规则,您将始终拥有第一个 $_GET 参数,我希望您正确设置了 DirectoryIndex。我不认为这对于

www.example.com/r/abc/1234
www.example.com/r/12bcd-qsqs-343-wdwd/1234

如果您有动态链接,您可以将 abc 和 12bcd-qsqs-343-wdwd 传递给 2 个不同的 $_GET 参数。

于 2012-08-28T07:52:27.303 回答
1

您要重定向的两个 URI 看起来都相似,除了第二个-在第一个查询参数中有连字符。

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^r/([^-]+)/(.+)/?$ r.php?deb=$1&id=$2 [L,QSA]

RewriteRule ^r/([a-z0-9-]+)/(.+)/?$ r.php?abc_id=$1&id=$2 [L,QSA,NC]
于 2012-08-28T08:01:40.403 回答