0

上記の状況で modrewrite を実行するにはどうすればよいですか。

私たちのウェブサイトは次のとおりです。www.real-estate.com

次に、最初の mod の書き換えがあります。

RewriteRule ^([a-zA-Z\-]+) cities.php?city_url=$1

したがって、これは次のように書き換えられますwww.real-estate.com/florida。フロリダ州のすべての不動産が一覧表示されます。

次に、次のルールを追加します。

RewriteRule ^([a-zA-Z\-]+)/(.*)+$ details.php?project=$2

これはに書き換えられwww.real-estates/florida/project-one、そのプロジェクトの詳細が表示されます。

しかし、次のように都市のリンクにアクセスするとwww.real-estae.com/florida/ (最後にスラッシュを付けて)、2 番目の mod 書き換えルールにジャンプし、変数が空の details.php に移動します。

ユーザーが都市の後にスラッシュを追加すると、空の var の詳細ページではなく、その都市のプロジェクトが引き続き表示されるように、この問題を解決する正しい解決策は何ですか?

4

2 に答える 2

0

遊んだ後、彼の作品が見つかりましたが、それが正しい解決策であるかどうかはわかりません:

私はこれを置き換えました:

RewriteRule ^([a-zA-Z\-]+)/+(.*)$ details.php?project=$2
RewriteRule ^([a-zA-Z\-]+) cities.php?city_url=$1

これとともに:

RewriteRule ^([a-zA-Z\-]+)/([a-zA-Z\-]+) details.php?project=$2
RewriteRule ^([a-zA-Z\-]+) cities.php?city_url=$1

だから私は (.*)$ を置き換えました。

于 2014-05-09T12:02:03.603 に答える
0

おそらく当面の問題は修正されましたが、使用されている正規表現に誤りがあり、アンカーを使用していないため、ルールが必要以上に一致する可能性があります$

あなたの場合、次のルールを使用します。

RewriteEngine On
RewriteBase /

RewriteRule ^[a-zA-Z-]+/([a-zA-Z-]+)/?$ details.php?project=$1 [L,QSA]
RewriteRule ^([a-zA-Z-]+)/? cities.php?city_url=$1 [L,QSA]

Apache mod_rewrite の紹介

于 2014-05-09T14:09:36.773 に答える