我想了解.htaccess重定向如何工作。.htaccess重定向如何工作?
例如说,我的用户导航到:
www.website.com/users/bob
我如何可以重定向用户:
WWW。 website.com/users.php?user=bob
我想了解.htaccess重定向如何工作。.htaccess重定向如何工作?
例如说,我的用户导航到:
www.website.com/users/bob
我如何可以重定向用户:
WWW。 website.com/users.php?user=bob
您的.htaccess将lo好吧,像这样:
# turn on the engine
RewriteEngine On
RewriteRule ^users/(.*)$ /users.php?user=$1
# Pattern:
#^ = start of URL (.htaccess doesn't get the leading "/")
# users/ = your path
# (.*) = capture any character, any number of times
# $ = end of string
# Result:
# /users.php?user= = your path
# $1 = the first group captured in the pattern
你应该也可以提到上面的RewriteBase。 – 2009-08-12 08:32:33
现在$ 1 ...如果我想在这里添加第二条规则,而不是website.com/users/bob,它将是website.com/show/whatever,并将其重定向到website.com/show.php。 ?ID =什么的。我是否会简单地复制该行,更改具体内容,并在最后放置2美元? – mrpatg 2009-08-12 08:33:22
不,您仍然使用$ 1 - 这是相关规则中的组。例如你可以有/ users/bob/bobbinson,匹配/users/([^/]*)/(.*)$然后$ 1是bob,$ 2是bobbinson – Greg 2009-08-12 08:43:12
我建议您阅读technical details of mod_rewrite。你可以很好地了解内部处理。
为了您的具体的例子,一个合适的规则可能是这样的:
RewriteRule ^users/([a-z]+)$ users.php?user=$1
现在,当被请求/users/bob
,mod_rewrite的将:
/
如果.htaccess文件位于文档根目录中)users/bob
),直到匹配
RewriteCond
指示他们,将被测试过$
n
和%
n
) ,如果模式匹配且条件评估为真/
)或绝对URL(以URL方案开头)
在这里和在serverfault.com上有这样的问题无穷无尽的流。这个怎么样,例如:http://stackoverflow.com/questions/1249368/mod-rewrite-beginner-questions – innaM 2009-08-12 09:09:31