.htaccess-多个参数
我一直在看,这里所有的问题都和我一样:如何重写多个参数?我知道该怎么做,但对我来说似乎不是很好 我不希望我的链接看起来像这样:link.dk/profil/2/overview 我的.htaccess如下所示:.htaccess-多个参数,.htaccess,.htaccess,我一直在看,这里所有的问题都和我一样:如何重写多个参数?我知道该怎么做,但对我来说似乎不是很好 我不希望我的链接看起来像这样:link.dk/profil/2/overview 我的.htaccess如下所示: #profil.php?id=? to profil/? RewriteRule ^profil/(.*)$ profil.php?id=$1 [L] RewriteRule ^profil/(.*)/(.*)$ profil.php?id=$1&do=$2 [L] 它必须能够
#profil.php?id=? to profil/?
RewriteRule ^profil/(.*)$ profil.php?id=$1 [L]
RewriteRule ^profil/(.*)/(.*)$ profil.php?id=$1&do=$2 [L]
它必须能够在不使用第三个参数的情况下访问/profil/2。这就是为什么我有两行。我不知道这样做是否正确
/profil/2运行良好,已经运行了一段时间。所以在这里不用担心。但是我不能理解第三个参数
我还在.htaccess文件中有两个:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/
RewriteRule ^(.*)index\.php$ /$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
在我写前两篇之前
如果我只使用带有两个参数的一个,它就工作了。但是它不能与/profil/2ofc一起工作。如果我用profil.php?id=2&do=overview输入url,我就可以访问该页面。了解我自己:
RewriteRule ^profil/([^/]+)$ profil.php?id=$1
RewriteRule ^profil/([^/]+)/([a-z]+)$ profil.php?id=$1&do=$2
.*似乎有点不精确和不稳定:-)
*
定义得很好。“*
”是一个贪婪的匹配——也就是说,它将尽可能长时间地匹配。对于这种类型的匹配,您可以使用非贪婪匹配*?
,例如(.*)/
意味着匹配任何charcher序列,但首先停止/或者您可以更改规则的顺序,但您的解决方案要优雅得多。