3

.htaccessを使用して、Webサイトでこれを実行できるようにするにはどうすればよいですか。これが私がすでに持っているものです。

RewriteEngine on
RewriteBase /
RewriteRule ^(.*)/(.*)$ sites/index.php?url=$1&page=$2

これから、http: //domain.com/sites/example/にアクセスすることができ 、それは完全に正常に機能します。私ができるようにしたいのは 、末尾にスラッシュを付けずにhttp://domain.com/sites/exampleを参照することですが 、ページが見つからないというエラーが常に返されます。

グーグルからこれまでのところ、すべての結果は私に失敗しました。

ありがとうございました。

4

2 に答える 2

0

正規表現を次のように変更してみてください。

RewriteRule ^([^/]+)/(.*?)/?$ sites/index.php?url=$1&page=$2

最初(.*)は貪欲で、すべてをむさぼり食うでしょう。

于 2012-10-17T22:28:15.887 に答える
0

ええ、グーグルの情報の海は時々邪魔になることがあります: RewriteRule ^(.*)/(.*)/?$ sites/index.php?url=$1&page=$2

/? に注意してください。$の前のリライタルールで、申し訳ありませんが、あなたの質問を逆に読んでしまいました...

編集された回答: RewriteRule ^(.*)/?(.*)$ sites/index.php?url=$1&page=$2

? の異なる位置 そうでなければ、最初の (.*) の貪欲な一致が最後までグロブし、それをすべて $1 に押し込もうとする可能性があるため、詳細については、apache の書き換えログをオンにして、可能であればそれを確認することをお勧めします。

于 2012-10-17T22:22:42.483 に答える