0

指定されたパスを保持するパラメーターを使用して index.php を置き換える任意のパス シーケンスを表すパターンを持つことは何とか可能ですか?

私はこのルールを持っています RewriteRule ^([^/.]+)$ /index.php?page=$1 [L]

これにより、URL をもう 1 つの「ディレクトリ」で拡張することができます。たとえば、www.example.com/Home です。index.php にリダイレクトされ、get 変数に「ホーム」が表示されます。

今、私はこれを改善したいので、www.example.com/path/to/somewhere のような何かを実行して、index.php にもリダイレクトし、変数に「path/to/somewhere」を表示することができます。任意の数のスラッシュと「ディレクトリ」エントリを使用できるようにする必要があります。しかし!最後にファイルがあるすべての URL、つまり www.example.com/path/to/file.pdf は、この書き換えルールの影響を受けないようにする必要があります。

どうすればそれを達成できますか?

4

1 に答える 1

0

次のいずれかを試してください

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)$ index.php?path=$1 [NC,L]

そして index.php では、以下のようにパスにアクセスします

<?php
echo $_GET['path'];
?>
于 2013-04-29T10:25:56.847 に答える