参数的url重写规则

时间:2020-11-11 09:23:14

标签: regex apache .htaccess mod-rewrite url-rewriting

我有以下网址:

https://www.mydomain.de/termin_cancel=c502b486-e8ad-490a-a615-80307a515fc8

原始网址:

https://www.mydomain.de/index.php?termin_cancel=c502b486-e8ad-490a-a615-80307a515fc8

重写规则:

RewriteRule ^termin_cancel=([\w-]+)/?$ index.php?termin_cancel=$1 [L,NC,QSA]

这有效!

但是现在我对下一种情况有疑问:

网址应为:

https://www.mydomain.de/termin_change=XXX&serviceID=XXX&firstname=XXX&lastname=XXX&email=XXX

原始网址:

https://www.mydomain.de/index.php?termin_change=XXX&serviceID=XXX&firstname=XXX&lastname=XXX&email=XXX

我不知道该使用哪种htaccess规则。 应该可以通过php $_GET访问参数。

3 个答案:

答案 0 :(得分:2)

这应该对您有用。

RewriteRule ^termin_change=([^&]+)&serviceID=([^&]+)&firstname=([^&]+)&lastname=([^&]+)&email=([^&]+)$ /index.php?termin_change=$1&serviceID=$2&firstname=$3&lastname=$4&email=$5 [L,NC]

答案 1 :(得分:1)

请您尝试以下。

RewriteEngine ON
RewriteRule ^(.*) index.php?$1 [QSA,NE,L]

如果您的index.php位于根目录/文件夹中,请与/配合使用。

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*) /index.php?$1 [QSA,NE,L]

OR(放在上面或后面)

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{REQUEST_URI} ^/termin_change=.*/?$ [NC]
RewriteRule ^(.*) /index.php?$1 [QSA,NE,L]

答案 2 :(得分:0)

尝试一下,类似下面的termin_change=

RewriteRule ^termin_change=(.+)/?$ index.php?termin_change=$1 [L,NC,QSA]
相关问题