1

これが私の.htaccessです:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^[0-9]+(/)?$ /hello.php [R=301]

localhost/123 は、期待どおり localhost/hello.php にリダイレクトされます。

ただし、localhost/123.... および localhost////123//// も localhost/hello.php にリダイレクトします。

どうしたの?

4

1 に答える 1

0

生理の問題を再現できませんでした。ただし、スラッシュに関しては、階層構造を作成しない場合、Apacheはスラッシュが1つしかないかのように動作します。だから////123///になり/123/ます。(スタックオーバーフロー-Apacheが複数のスラッシュを削除する理由を参照してください)。再利用のためにスラッシュをキャプチャする必要がないため、リライトを次のように変更することをお勧めします。

RewriteRule ^[0-9]+/?$ /hello.php [L,R=301]

末尾のスラッシュをまとめて削除する場合は、次の可能性もあります。

RewriteRule ^[0-9]+$ /hello.php [L,R=301]
于 2012-10-23T06:00:36.247 に答える