htaccess使用多个php参数重写URL

htaccess使用多个php参数重写URL,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,这很可能是重复的,但我已经用尽了这里的每个例子,没有任何效果 我正在为某人在一个成人网站上工作,并以此为借口学习一些东西 以此URL为例: 我希望它看起来像这样: 因此,需要发生两件事: 不重定向的URL重写,忽略id参数 名称中的空格替换为下划线(或破折号) 重写开始了。其他重写工作,如删除文件扩展名(这是否会造成干扰?尽管即使禁用此功能也不起作用。) 我的头发都掉光了 请帮忙 您如何知道使用哪个id?您可以使用Rewritemap来查找它,但这取决于您如何知道它是什么(正如Heinr

这很可能是重复的,但我已经用尽了这里的每个例子,没有任何效果

我正在为某人在一个成人网站上工作,并以此为借口学习一些东西

以此URL为例:

我希望它看起来像这样:

因此,需要发生两件事:

  • 不重定向的URL重写,忽略id参数
  • 名称中的空格替换为下划线(或破折号)
重写开始了。其他重写工作,如删除文件扩展名(这是否会造成干扰?尽管即使禁用此功能也不起作用。)

我的头发都掉光了


请帮忙

您如何知道使用哪个id?您可以使用Rewritemap来查找它,但这取决于您如何知道它是什么(正如Heinrich在评论中指出的)

同样,在重写中,在
profile.php
中将“u”转换为空格(尽管可能)要容易得多。有点让人困惑的是,您说您想将空格转换为下划线,但在您的示例中,您做的恰恰相反(至少是编码的空格)。你能澄清或纠正我的误解吗

这里有一个基本规则,让你开始


RewriteRule^/profiles/massur/(\w+)/profiles/massur/profile.php?id=5&name=1

您如何知道使用哪个id?您可以使用Rewritemap来查找它,但这取决于您如何知道它是什么(正如Heinrich在评论中指出的)

同样,在重写中,在
profile.php
中将“u”转换为空格(尽管可能)要容易得多。有点让人困惑的是,您说您想将空格转换为下划线,但在您的示例中,您做的恰恰相反(至少是编码的空格)。你能澄清或纠正我的误解吗

这里有一个基本规则,让你开始


RewriteRule^/profiles/masseur/(\w+)/profiles/masseur/profile.php?id=5&name=$1

因此,要了解您到底想要什么:用户应该在地址栏中键入“”,然后在“”处返回页面?(如果是这种情况,您将无法使用url重定向执行此操作,因为它无法知道您的id变量应该是什么,您可以得到的最接近的变量将是“”我应该说得更具体一些。第一个链接是单击链接时显示的实际URL。我希望它在地址栏中显示为第二个链接。如果不想使用重定向,则必须使用javascript。服务器端的重写引擎将仅解释发到服务器的URL,并在pas之前更改它们将它们发送到web服务器应用程序。从服务器端更改浏览器URL的唯一方法是通过重定向响应通知浏览器转到新URL(重定向浏览器)使用slug在数据库中创建一个唯一的列,即从名称派生的经过消毒的小写字符串。有很多示例函数可以实现这一点。从这些输出构建页面上的URL,然后使用它们从重写规则进行查找。您可能还需要标志
[L,B,QSA]
在您的
重写规则上
。因此,要了解您到底想要什么:用户应该在他们的地址栏中键入“”,然后您将页面返回到“”?(如果是这种情况,您将无法使用url重定向来执行此操作,因为它无法知道您的id变量应该是什么,您可以得到的最接近的是“”我应该说得更具体一些。第一个链接是单击链接时显示的实际URL。我希望它在地址栏中显示为第二个链接。如果不想使用重定向,则必须使用javascript。服务器端的重写引擎将仅解释发到服务器的URL,并在pas之前更改它们将它们发送到web服务器应用程序。从服务器端更改浏览器URL的唯一方法是通过重定向响应通知浏览器转到新URL(重定向浏览器)使用slug在数据库中创建一个唯一的列,即从名称派生的经过消毒的小写字符串。有很多示例函数可以实现这一点。从这些输出构建页面上的URL,然后使用它们从重写规则进行查找。您可能还需要标志
[L,B,QSA]
在您的
重写规则上