mod-rewrite - insensitive - rewriterule loglevel




Mod-rewrite後続スラッシュの問題 (2)

@Paul Tomblinが言ったように、。+は貪欲である。 つまり、可能な限り一致しています。

^(.+[^/])/?$は、何にもマッチするように指示し、/以外の文字が続き、その後にオプションの/が続きます。 これは、/をキャプチャしないという効果があります。

あなたのCSSとJavascriptが機能しない可能性が最も高いのは、src = "my.js"のような相対パスを使用していることです。 末尾にスラッシュがある場合は、ディレクトリのように見えるので、ブラウザは/location/kings-lynn/my.jsを探します。 ファイルへの絶対パス(例:/location/my.js)を使うだけで、これを修正できます。

このトピックについてはあまり情報がないように見えるので、具体的な問題の概要を説明し、質問と回答をより普遍的なものにすることができます。

私はこの書き換えルールを持っている

RewriteEngine On
RewriteBase /bookkeepers/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/?$ index.php?franchise=$1

このURLが変更されます

http://example.com/location/kings-lynn

これに

http://example.com/location/index.php?franchise=kings-lynn

私が持っている問題は、後ろにスラッシュ

http://example.com/location/kings-lynn/

クエリ文字列は次のように返されます。

franchise=kings-lynn/

何らかの理由で私のCSSとJavascriptファイルがロードされていません。

何か案は?


(。+)が欲張りにマッチしているようです。 その場合は、

RewriteRule ^(.+[^/])/?$ index.php?franchise=$1

これにより、最初のグループ(括弧内)がスラッシュで終わらないことが確認されます。