Apache重写,如何从URL中提取一个单词和一个数字并将其传递到php?

Apache重写,如何从URL中提取一个单词和一个数字并将其传递到php?,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,说我有http://www.domain.com/whatever-with-hyphens-6.shml 我想将带有连字符的和6传递给我的php脚本,我将如何实现这一点 /php/catpages.php?cat=$1&page=$2 这将是最后一条规则,不区分大小写我不会将它们作为get变量传递给php脚本。 让您的php控制器脚本解析请求的页面名称本身 不要将/php/catepages.php?cat=$1&page=$2作为重定向目标,而是将 /php/controller.php作为

说我有
http://www.domain.com/whatever-with-hyphens-6.shml

我想将带有连字符的
6
传递给我的php脚本,我将如何实现这一点

/php/catpages.php?cat=$1&page=$2


这将是最后一条规则,不区分大小写

我不会将它们作为get变量传递给php脚本。 让您的php控制器脚本解析请求的页面名称本身

不要将/php/catepages.php?cat=$1&page=$2作为重定向目标,而是将

/php/controller.php作为您的目标


然后,您可以在请求的URI上使用split或其他方法,并将$\u一起从中取出。

我不会将它们作为GET变量传递给php脚本。 让您的php控制器脚本解析请求的页面名称本身

不要将/php/catepages.php?cat=$1&page=$2作为重定向目标,而是将

/php/controller.php作为您的目标


然后,您可以在请求的URI上使用split或其他方法,并将$\u一起从中取出。

这就是您想要做的吗

RewriteEngine On
RewriteRule (.+)-([0-9]+)\.shml /php/catpages.php?cat=$1&page=$2  [L,NC]

这应该重写
http://www.domain.com/whatever-with-hyphens-6.shml
/php/catpages.php?cat=带连字符的任何东西&page=6

这就是你想要做的吗

RewriteEngine On
RewriteRule (.+)-([0-9]+)\.shml /php/catpages.php?cat=$1&page=$2  [L,NC]

这应该重写
http://www.domain.com/whatever-with-hyphens-6.shml
/php/catpages.php?cat=带有连字符的任何东西&page=6

我正在迁移一个站点,需要这样做。Jon-如果发送现有的get变量,这样做有效吗?mod_rewrite是否正确地将现有get变量附加到带有get变量的rewrite中?我真的不知道,但这对我来说是一个问题。是的,它确实有效,但它在windows服务器上使用ISAPI重写。我正在迁移一个站点,需要这样做。Jon-如果发送现有的get变量,这是否有效?mod_rewrite是否正确地将现有get变量附加到带有get变量的rewrite中?我真的不知道,但这对我来说是一个问题。是的,它确实有效,但它在windows服务器上使用ISAPI重写。朱尔斯:对我来说,它是+1,而不是-1。只是测试了它,它就工作了。你能解释一下什么是“那不起作用”,也许你有一些其他的规则相冲突,你遵守了什么?对不起,“R”不应该放在括号里。但它不应该对它有任何影响,它只是导致浏览器重定向而不是内部重定向。朱尔斯:对我来说,它是+1,不是-1,只是测试了它,它工作了。你能解释一下什么是“那不起作用”,也许你有一些其他的规则相冲突,你遵守了什么?对不起,“R”不应该放在括号里。但它不应该对它有任何影响,因为它不适合您,它只是导致浏览器重定向,而不是内部重定向。