0

最近移動したページのリダイレクトを設定しようとしています。このページはもともと にありましhttp://example.com/foo/たが、その後 に移動しましたhttp://example.com/foo/bar/

.htaccessサイトファイルで次のルールを試しました:

RedirectMatch 301 ^/foo/$ /foo/bar/

ただし、 url に移動するhttp://example.com/foo/と、 url にリダイレクトされましたhttp://example.com/foo/bar/?/foo/?/foo/URL が機能し、リダイレクト先のページがロードされますが、URL の末尾にある余分なものを取り除きたいと思います。

これが私の完全な.htaccessです:

RewriteEngine On
RewriteBase /

# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [R=301,L]

# allow access to certain directories in webroot
RewriteCond $1 !^(index\.php|robots\.txt|css/|lib/|js/|images/|^(.*)/images)

# gets rid of index.php
RewriteRule ^(.*)$ index.php?/$1 [L] 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# page redirects
RedirectMatch 301 ^/foo/$ /foo/bar/
4

2 に答える 2

5

RewriteRruleファイルの先頭に a を.htaccess追加するとRewriteBase /、問題が解決しました。

RewriteRule ^foo/$ /foo/bar [R=301,L]

于 2013-01-25T08:26:26.447 に答える