htaccess(リダイレクトなし)[REWRITEURL](index.phpへのフォルダー)

StackOverflow https://stackoverflow.com/questions/807630

  •  03-07-2019
  •  | 
  •  

質問

ただhtaccessのリダイレクトを取得したいだけです。例:

domain.com/subfolderGreen-> domain.com/index.php?folder=subfolderGreen

(サブフォルダGreenが実際に存在することに注意してください)

試してきましたが、必要な正規表現に到達できませんでした。

ありがとう。 a。

追加:

申し訳ありませんが、これは「subfolderGreen」だけでなく、任意のサブフォルダで動作するようにしたいです。 使用しています

RewriteRule ^ /([^ /] +)/?$ /index.php?folder=$1 [L]

しかし、機能していません。 手がかりはありますか?

役に立ちましたか?

解決

/index.phpがあなたがしていることと一致するので、あなたの例は無限ループを引き起こすと思います。これを試してください:

RewriteRule ^([A-Za-z0-9]+)/?$ /index.php?folder=$1 [L]

存在するすべてのディレクトリで動作するようにしたい場合、これもおそらく動作します。

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)/?$ /index.php?folder=$1 [L]

他のヒント

RewriteRule ([^/]+)$ index.php?folder=$1

これでうまくいくと思います。

RewriteRuleを.htaccessで使用すると、RewriteBaseを追加する必要がある混乱する問題があります。

どのようなエラー/問題が発生していますか?リダイレクトの方法を確認したい場合は、[R]を追加するとデバッグに役立ちます。

最後に...サブフォルダGreenは本当に存在するのですか?問題が発生する可能性がある場合。

私はそれが信じています:

RedirectMatch 301 domain.com/(.*) domain.com/index.php?folder=$1
RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /(([^/\ ]+/)*)/+([^\ ]*)
RewriteRule ^ /%1%3 [L,R=301]
RewriteRule ^([^/]+)/?$ index.php?folder=$1 [L]

2行目は、誰かがwebsite.com/mypage/////にアクセスした場合にケースを処理するため、代わりにwebsite.com/mypage/がデフォルトになります(私は思う)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top