我有一个形式的网址:
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处理。有什么建议吗?
答案 0 :(得分:1)
尝试类似:
RewriteRule (.*)/(.*)/(.*)$ path_to_php_files/$1.php?deb=$2&id=$3 [QSA,L,NC]
不幸的是,使用此规则,您将第一个$ _GET参数始终为deb,并且我希望您能够正确设置DirectoryIndex。
我不认为www.example.com/r/abc/1234
www.example.com/r/12bcd-qsqs-343-wdwd/1234
如果你有动态链接,你可以将abc和12bcd-qsqs-343-wdwd传递给2个不同的$ _GET参数。
答案 1 :(得分:1)
您要重定向的URI看起来都相似,只是第二个在第一个查询参数中有连字符-
。
通过httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在.htaccess
目录下的DOCUMENT_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]