mod_rewrite的简单野性?

时间:2013-01-24 02:16:39

标签: php html apache .htaccess mod-rewrite

mod_rewrite的新手。我只是想做这样的事情:

# Turn on the rewriting engine
RewriteEngine On    

# use item php page to show the item
RewriteRule    ^parts/./[.]$    parts/item.php?id=$1    [NC]    

因此,当某人在example.com/parts/anything/anything中输入内容时,该网址将转到

example.com/parts/item.php?id=the2ndanything

根据我的理解,这个时期意味着任何角色。此外,我试图在句点之后添加一个+(这应该意味着什么),但是仍然没有用。

顺便说一下,我在一个临时URL上,因为我还没有更改我以前的网络主机,因此我的实际完整网址中有一个〜。我希望这不是mod_rewriting的问题,因此是阻止它工作的问题。 .htaccess文件位于根网站的index.html。

1 个答案:

答案 0 :(得分:6)

.表示任何字符,但您必须按+(一个或多个)或*(零或更多)跟随它必须在()中捕获它才能用作$1。使用[^/]+匹配所有字符(但不包括/)以匹配但不捕获parts/之后的第一个目录。

RewriteEngine On
# (.*) captures the second "anything" in $1
RewriteRule ^parts/[^/]+/(.*)$ parts/item.php?id=$1 [L]