2

私は次のURLを持っています

1) domain.com/articles/one-two-three
2) domain.com/articles/four-five-six
3) domain.com/articles/{name of a post}
4) domain.com/articles/wp-content/
5) domain.com/articles/wp-admin/

URL 1、2、3をリダイレクトしたいが、4と5はリダイレクトしたくない。つまり、/articles/ディレクトリ内ので始まらないすべてのページをリダイレクトしたい。wp-

この次のスニペットは、後に続くすべてのものをリダイレクトします/articles/

Options +FollowSymlinks
RewriteEngine on
# RedirectMatch 301 /articles/(.*) http://domain.com/$1

このリダイレクト一致をフィルタリングしてパターンを除外するにはどうすればよいですか?

いくつかのコメントに応えて編集

テストしている(ブラウザからの)入力URLは何ですか、

http://www.chipkin.com/articles/steam-boilers-vs-hydronic-boilers/

期待される出力はどれくらいですか?

http://www.chipkin.com/steam-boilers-vs-hydronic-boilers/

また、これはWordPressのように見えるため、競合が発生する可能性があるため、.htaccessにすでに含まれている可能性のある他のルールを投稿してください。

RewriteEngine On
# If the request doesn't start /articles/wp-
RewriteCond %{REQUEST_URI} !^/articles/wp-
# Rewrite it:
RewriteRule ^articles/(.*) http://www.chipkin.com/$1 [L,R=301]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
4

1 に答える 1

2

ではなく、RedirectMatchを使用しRewriteCondて、URIがで始まらないことを確認し/articles/wp-、書き換えを実行します。

RewriteEngine On
# If the request doesn't start /articles/wp-
RewriteCond %{REQUEST_URI} !^/articles/wp-
# Rewrite it:
RewriteRule ^articles/(.*) http://domain.com/$1 [L,R=301]
于 2013-03-21T19:37:09.610 に答える