在 htaccess 中重写 URL 并删除除参数之外的所有内容

在 htaccess 中重写 URL 并删除除参数之外的所有内容

是否可以转换此 URL:

example.com/send.php?url=google.com&name=&submit=submit

进入这个网址:

example.com/google.com

当我尝试时,我总是收到 404 或 500 错误,这令人沮丧。

这是我尝试过的一些方法。

RewriteRule ^([^/]*)$ /send.php?url=$1&name=&submit=submit [NC,L]
RewriteRule ^([-\w\.]*)$ /send.php?url=$1&name=&submit=submit [NC,L]
RewriteRule ^(.*)$ /send.php?url=$1&name=&submit=submit [NC,L]

如果不可能,请告诉我为什么。我对 mod_rewrite 还不太熟悉,想学习一下。

答案1

您可以尝试以下规则。

RewriteCond %{REQUEST_URI} !send.php
RewriteRule ^([-\w\.])$ /send.php?url=$1&name=&submit=submit [NC,L]

答案2

或者你可以尝试

RewriteRule ^(.*) /$1/? [L,R=301]

我不是重定向专家,但我认为末尾的问号会切断所有参数。

答案3

如果您不重写其他任何内容,只需使用:

FallBackResource /send.php

并解析 PATHINFO

答案4

如果您想解析参数以将其用作文件/目录,您应该尝试以下操作:

RewriteRule ^/send\.php\?url=([-\w\.])\&.*$ /$1 [NC,L]

相关内容