mod-rewrite将子URL重定向到父URL

时间:2013-10-23 21:29:20

标签: .htaccess mod-rewrite

在.htaccess中我希望在第二个'/'之后砍掉任何内容......所以http://www.domain.com/parent/child/otherchild会被重定向到http://www.domain.com/parent/

2 个答案:

答案 0 :(得分:0)

启用mod_rewrite.htaccesshttpd.conf,然后将此代码放入DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On

RewriteRule ^([^/]+/).+$ /$1 [L,R=301]

答案 1 :(得分:0)

将这些规则添加到文档根目录中的htaccess文件中:

RewriteEngine On
RewriteRule ^([^/]+)/.+$ /$1/ [L,R=301]

通过在评论中粘贴所有不可读的代码,不确定您的意思,但是您想添加我在评论中提到的排除条件:

AddType application/octet-stream vcf

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.(css|js)$ [NC]
RewriteRule ^([^/]+)/.+$ /$1/ [L,R=301]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !^/wp-content/themes/myTheme/style.css
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

这一行是排除,因为!

RewriteCond %{REQUEST_URI} !\.(css|js)$ [NC]

这意味着如果URI以.css.js结尾,则不会应用该规则。您可以根据需要添加其他人。假设您不想重定向像/foo/bar/no-redirect/这样的URI,那么还要添加:

RewriteCond %{REQUEST_URI} !^/foo/bar/no-redirect/