質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

2回答

1101閲覧

.htaccessで数百あるURLをリダイレクトしたい

lct_takaaki

総合スコア1

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

1クリップ

投稿2022/01/20 13:27

編集2022/01/21 10:14

.htaccessで正規表現を使用して、数百ある記事リダイレクトをしたいです。
.htaccessに以下のように記述しましたが、リダイレクトしません。
どのように記述したら実現できるのでしょうか。

リダイレクトしたいURLのパターン

.htmlと記載のあるURLやめて、スラッシュで終わるURLにしたいです。

https://example.com/dir/111.html
https://example.com/dir/112.html
...

https://example.com/dir/111/
https://example.com/dir/112/
...

.htaccessに記述した内容

htaccess

1<IfModule mod_rewrite.c> 2RewriteEngine on 3RewriteRule ^dir/^(.*)\.html$ /dir/$1/ [R=301,L] 4</IfModule> 5 6# BEGIN WordPress 7# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は 8# 動的に生成され、WordPress フィルターによってのみ修正が可能です。 9# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 10<IfModule mod_rewrite.c> 11RewriteEngine On 12RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 13RewriteBase / 14RewriteRule ^index\.php$ - [L] 15RewriteCond %{REQUEST_FILENAME} !-f 16RewriteCond %{REQUEST_FILENAME} !-d 17RewriteRule . /index.php [L] 18</IfModule> 19# END WordPress 20 21Redirect permanent /dir/21387.html https://example.com/dir/21387/ 22 23 24SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off 25SetEnvIf Request_URI ".*" Ngx_Cache_StaticMode 26

WordPressのサイトです。

Redirect permanent /dir/21387.html https://example.com/dir/21387/

はリダイレクトしますが、
https://example.com/dir/21840.html
などにアクセスするとNotFoundが表示されます。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2022/01/20 13:47

どういうURLをブラウザに入力したら、どうなって欲しいですか? 現状で、実際にはどうなるのですか?
guest

回答2

0

ベストアンサー

https://example.com/dir/111.html
にアクセスされたら、

https://example.com/dir/111/
という具合にリダイレクトしたいです。

だけであれば、単に、

Apache

1RewriteEngine on 2RewriteRule ^dir/(.*)\.html$ /dir/$1/ [R=301,L]

です。

他にも要件があるなら、全部書かないと解決しませんよ。

投稿2022/01/21 09:49

編集2022/01/21 13:17
otn

総合スコア84553

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lct_takaaki

2022/01/21 10:18

ありがとうございます。 教えていただいたコードを試したのですがが、リダイレクト実現できませんでした。 アドバイスいただいた要件を全部書くというのは、htaccessを全て記述する。ということでしょうか。 「.htaccessに記述した内容」を修正しました。 よろしくお願いします。
otn

2022/01/21 13:19

失礼しました。元のコードをコピペした後での削除漏れでした。$ は消したのですが。 修正しました。 > アドバイスいただいた要件を全部書くというのは、htaccessを全て記述する。ということでしょうか。 いいえ。「何を実現したいか」を全部書くと言うことです。他に無いならいいです。
lct_takaaki

2022/01/24 08:25

ありがとうございます! リダイレクトできました。
guest

0

Redirect 301 /hogehoge.html https://www.hoge.com/hogehoge/
とかでいけませんか?

投稿2022/01/20 14:31

niconic73027793

総合スコア215

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lct_takaaki

2022/01/21 06:28 編集

ありがとうございます。 リダイレクトの量が、数百あるので効率的な書き方があれば、おしえていただければと思っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問