Mod rewrite 如何重写URL,将路径拆分为单独的查询字符串参数?

Mod rewrite 如何重写URL,将路径拆分为单独的查询字符串参数?,mod-rewrite,apache2,Mod Rewrite,Apache2,我想将一个URL(如:mysite.com/Section/Subsection/subsubsubsection)重写为 mysite.com/index.php?s=Section&sub1=SubSection&sub2=subsubsubsection 我写了这条规则: RewriteRule ^([^/]*)/([^/]*)/([^/]*)/?$ /index.php?s=$1&sub1=$2&sub2=$3 但问题是,节、子节和子节根本不是强制性的,但如果我插入一些

我想将一个URL(如:mysite.com/Section/Subsection/subsubsubsection)重写为 mysite.com/index.php?s=Section&sub1=SubSection&sub2=subsubsubsection

我写了这条规则:

RewriteRule ^([^/]*)/([^/]*)/([^/]*)/?$ /index.php?s=$1&sub1=$2&sub2=$3
但问题是,节、子节和子节根本不是强制性的,但如果我插入一些“?”字符,它将出现内部服务器错误

(我试过:

RewriteRule ^([^/]*)(/([^/]*))?(/([^/]*))?/?$ /index.php?s=$1&sub1=$3&sub2=$5
但它不起作用)

另一个问题是,还有其他URL不应编辑,例如/res/img/logo.png

讨论中的站点是动态的,所以我事先不知道节名。当然,我知道应该排除的URL


有什么解决办法吗?提前谢谢。

我想你应该做这样的事

RewriteRule ^/([a-zA-Z]*)/([a-zA-Z]*)/([a-zA-Z]*)/?$ /index.php?s=$1&sub1=$2&sub2=$3
问候,


Mimiz

是否不可能只在php中处理请求uri?看起来会更容易,我认为CMS就像Wordpress、Drupal和Joomla。我认为Zend会在php中处理URL,一旦所有内容都被重定向到index.php,但如果我重定向到index.php,当我尝试在php中处理它时,请求uri总是'index.php',或者不是吗?就是这样,请求uri不会变为index.php,只要你不在重写规则中重定向。以Wordpress.htaccess文件为例,我看到了,它似乎可以工作!非常感谢。