

`.htaccess` に記載することでリダイレクトをさせようとしております。  
ディレクトリ構成としては以下のようになっており、URLを `/site/aaaa` や `/site/bbbb` とすればアクセスできる状態です。

[code]

    site
      └── aaaaディレクトリ
      └── bbbbディレクトリ
    
[/code]

### やりたいこと

  * `site` 以下をドキュメントルートとし、URLを `/aaaa` と `/bbbb` としてもアクセスできる状態にしたい
  * `/` にアクセスした場合も `/aaaa` にアクセスできる状態にしたい

以下のように記述すると、

  * `/aaaa/` や `/` の場合は `/aaaa/` にちゃんと遷移する
  * ただ、`/aaaa` とすると `/site/aaaa/` に遷移する

となっており、困っております。どちら様かご教示いただけないでしょうか。

[code]

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/$ [OR]
    RewriteRule ^$ aaaa/ [R=301,L]
    RewriteCond %{REQUEST_URI} !/site/
    RewriteRule ^(.*)$ site/$1 [L]
    
[/code]

なお、conoha Wingを利用しており、httpd.confでドキュメントルートを指定することはできなかった認識です。  
上記のように仮に他のやり方の方がいい、ということがあれば、そちらのアドバイスもいただけると幸いです。  
初心者の質問で恐縮ですが、よろしくお願いいたします。


CC BY-SA 4.0
2022-07-10T05:27:15.180
89881
2022-07-11T05:16:09.897
2022-07-11T05:16:09.897
3060
53465
question
.htaccess
末尾の / (スラッシュ) の有無でリダイレクト先が異なってしまう


最後の RewriteRule で変換(/aaaa → /site/aaaa)した後、trailing slash
を付けるためにリダイレクトされるのでしょう。  
その前に trailing slash を付けるルール(/aaaa → /aaaa/)を挿入するといいと思います。

[code]

    RewriteRule ^$ aaaa/ [R=301,L]
    RewriteRule ^(aaaa|bbbb)$ $1/ [R=301,L]
    RewriteCond %{REQUEST_URI} !/site/
    RewriteRule ^(.*)$ site/$1 [L]
    
[/code]


CC BY-SA 4.0
2022-07-11T05:11:21.050
89908
2022-07-11T05:11:21.050
4603
89881
answer