0

这段代码:

RewriteRule   ^([A-Za-z0-9\.]+)/(.*)$   /?p=profile&user_name=$1 [NC,L]

工作正常。

但是这个:

RewriteRule   ^([A-Za-z0-9\.]+)/?(.*)$   /?p=profile&user_name=$1 [NC,L]

不工作并得到内部服务器错误!!!

在用户名工作后,我想要有和没有(/)。那就是:

  • example.com/myusername/

  • example.com/myusername

  • example.com/myusername/family

  • example.com/myusername/family/

一切都必须工作!

4

2 回答 2

1

看起来规则有一些内部循环。如果您没有任何其他规则,我不确定它可能是什么,但您可以针对查询字符串添加显式检查:

RewriteCond %{QUERY_STRING} !user_name
RewriteRule ^([A-Za-z0-9\.]+)/? /?p=profile&user_name=$1 [L]
于 2012-08-06T16:44:42.587 回答
0

我通过用这些替换代码解决了我的问题:

RewriteRule   ^([A-Za-z0-9\.]+)$  /?p=profile&user_name=$1 [NC,NS,L]
RewriteRule   ^([A-Za-z0-9\.]+)/(.*)$  /?p=profile&user_name=$1 [NC,L]
于 2012-08-06T21:40:34.820 回答