0

ここで数え切れないほどの答えを読んでいる間、うまくいく答えが見つからないようです。タスクは非常に単純です/fldr/subfldr/。常に index.php にリダイレクトしながら、REQUEST_URI から削除します。fldr と subfldr は実際のディレクトリですが、それ以降は実際には存在しません。.htaccess と index.php は subfldr 内にあります。

現在の .htaccess:

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^.*$ index.php [PT,L]

そして、私が試した他の RewriteRules:

RewriteRule ^(.*) index.php/$1 [PT,L]
RewriteRule ^/fldr/subfldr/?.*$ index.php [PT,L]

フォルダーを RewriteBase に追加することさえ試みました。すべてのバージョンは、まったく同じものをリクエストに渡します。

4

2 に答える 2

4

REQUEST_URI 環境変数を書き換える代わりに、次のように「uri」パラメータなどをスクリプトに渡すだけにしてください。

RewriteEngine On
RewriteBase /fldr/subfldr/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?uri=$0

その後、index.php で $_GET['uri'] を使用できます。

于 2012-08-07T22:54:27.037 に答える
1

次にこれを試してください(htaccessファイルはあなたの/fldr/subfldr/ディレクトリにあります):

RewriteEngine On

RewriteBase /fldr/subfldr/

# pass through if already index.php
RewriteRule index\.php - [L]

# Rewrite to index.php
RewriteRule ^(.*)$ index.php [L]

これにより、index.phpに渡されたパスの一部が削除されるようになりますREQUEST_URI/fldr/subfldr

于 2012-08-06T01:37:25.267 に答える