htaccess(リダイレクトなし)[REWRITEURL](index.phpへのフォルダー)
質問
ただ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/がデフォルトになります(私は思う)
所属していません StackOverflow