PHP URL重写两个参数

时间:2014-02-20 15:44:41

标签: php .htaccess email

是否可以使用www.domain.com/admin/mail-sent这样的网址实际上是www.domain.com/admin/mail.php?category=mail&folder=sent

我在.htaccess中设置了这个:

AddDefaultCharset UTF-8
RewriteEngine On

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]

RewriteRule ^([a-zA-Z0-9-]+)$ mail.php?category=$1folder=$2

..我不知道是不是。我已经尝试将文件夹作为网址,这很好,但我真的希望网址与/mail-sent相似,而不仅仅是/sent

这甚至可能吗?

度过美好的一天:)

2 个答案:

答案 0 :(得分:3)

是的,它是:

RewriteRule ^admin/([^-]+)-([^/]+)/?$ mail.php?category=$1&folder=$2 [L,NC]

([^-]+)任何不是破折号的东西

([^/]+)在第一次破折之后不是/的任何东西

您也可以更严格地执行此操作:

RewriteRule ^admin/(mail)-(sent)/?$ mail.php?category=$1&folder=$2 [L,NC]

答案 1 :(得分:0)

当然,这是可能的。只需重写正则表达式即可注意-。使用括号,您可以定义匹配组:

RewriteRule ^([a-zA-Z0-9]+)\-([a-zA-Z0-9]+)$ mail.php?category=$1folder=$2

$ 1表示第一个括号,$ 2表示秒。