0

我正在为我的一个应用程序使用 Codeigniter,并有一个以下 htaccess 文件

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]

现在我有一个类似于 mydomain.com/group/username 的 url

出于 SEO 原因,我想使用 301 重定向将此 url 转换为 mydomian.com/group/username 转换为 mydomian.com/username

像 mydomain.com/group/username/page1 这样的 url 应该重定向到 mydomian.com/username/page

谷歌搜索后我尝试过的最接近的方法是将以下行粘贴到文件末尾

RewriteRule ^(.*?)/?group(.*)$ /$1 [L]

但它不起作用..知道我哪里出错了吗?其他问题的答案似乎对我不起作用/ .htaccess 非常糟糕

PS -我试过这个

  RewriteRule ^group/username(.*)$ username/$1 [QSA,R=301,L]

它工作正常,但它给出了连续的斜杠,如mydomain.com/username//pagename

4

2 回答 2

1

我想通了

  RewriteRule ^group/username(.*)$ username$1 [QSA,R=301,L]

这只会从您的 URL 中删除“组”并执行 301 重定向

于 2013-07-22T15:42:34.767 回答
0

如果

RewriteRule ^group/username(.*)$ username/$1 [QSA,R=301,L]

给出两个斜杠,将其更改为:

RewriteRule ^group/username/(.*)$ username/$1 [QSA,R=301,L]

(.*)$ 匹配用户名(包括斜杠)之后的任何内容,直到最后。

于 2013-07-22T15:45:00.643 回答