从网址中删除特定细分

时间:2013-07-22 14:56:24

标签: codeigniter .htaccess

我正在为我的某个应用程序使用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

的网址

出于搜索引擎优化的原因,我想使用301重定向将此网址转换为mydomian.com/group/username到mydomian.com/username

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

我在谷歌搜索后尝试的最接近的方法是在文件末尾粘贴下面的行

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

但它不起作用..任何想法我哪里出错了? 关于其他问题的答案似乎对我不起作用/对于.htaccess来说非常糟糕

P.S - 我试过这个

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

它工作正常,但它会提供连续的斜杠,例如 mydomain.com/username//pagename

2 个答案:

答案 0 :(得分:1)

我已经弄明白了

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

这只会从您的网址中删除“群组”,并会执行301重定向

答案 1 :(得分:0)

如果

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

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

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

(。*)$匹配用户名后的任何内容(包括斜杠)直到结束。