我已经成功实施了基本的Facebook网址:
内部调用http://example.com/(username)的http://example.com/sites/(username) 使用以下mod_rewrite代码:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/sites/
RewriteRule ^([^/]+)/?(.*)$ sites/$1/$2 [NC,L]
请注意,(username)文件夹存在于sites文件夹
中以上工作完美无缺。但现在我想要美化我的其他网址: http://example.com/(username)/Image/2/这应在内部调用http://example.com/sites/(username)/index.php?type=image&id=2
为此,我在最后一行添加了以下代码:
RewriteRule ^([^/]+)/Image/(.*)$ /sites/$1/index.php?type=image&id=$2 [NC,L]
我希望最后的[L]会在此之后停止计算规则。但是从日志中可以看出它进入了一个无限循环并被截断。
有人可以指出我在这里做错了吗?
答案 0 :(得分:0)
在DocumentRoot文件夹中,您可以使用此.htaccess:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)/(\d+)/?$ sites/$1/index.php?type=$2*id=$3 [QSA,L]
RewriteRule ^((?!sites[^/]+)(/.*)?$ sites/$1$2 [NC,L]