我们有如下 URL;
- mydomain.com/my-keyword/
- mydomain.com/my-other-keyword/
- mydomain.com/my-another-keyword/
并且
- mydomain.com/my-keyword/a-page.html
- mydomain.com/my-keyword/another-page.html
- mydomain.com/my-other-keyword/some-page.html
- mydomain.com/my-other-keyword/any-page.html
- mydomain.com/my-another-keyword/another-page.html
- mydomain.com/my-another-keyword/some-page.html
我们希望转换 (301) 所有没有/
例如mydomain.com/my-another-keyword
-> 创建的 URL 到 ->mydomain.com/my-another-keyword/
而不损害 URL 结构的其余部分。
有任何想法吗?
答案1
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://mydomain.com/$1/ [L,R=301]
如果文件存在:不添加斜线,如果它不是文件:添加斜线
答案2
只要路径中的“目录”不包含 ,这对您来说就应该有效。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://domain.com/$1/ [R=301,L]