1

現在、htaccessに次の行があります。

RewriteRule ^/events/([^/\.]+)/?$/ /events.php?eventdate=$1 [NC,L]

動的な日付を取得してコンテンツを生成するphpページevents.phpがあります。たとえば、人々が /events/04-26-2013/ にアクセスすると、events.php?eventdate=04-26-2013 から取得したい

ここで私が間違っているアイデアはありますか? 現在、ディレクトリをロードしようとすると 404 が表示されます。

4

2 に答える 2

2

あなたの問題は最初のスラッシュにあると思います。

これはうまくいくはずです。

RewriteRule ^events/([^/\.]+)/?$ /events.php?eventdate=$1 [NC,L]
于 2013-04-26T19:22:24.900 に答える
0

mod_rewrite マニュアルのRewriteRule ディレクティブセットによると:

VirtualHost コンテキストでは、パターンは最初に URL のホスト名とポートの後、クエリ文字列の前の部分と照合されます (例: "/app1/index.html")。

Directory および htaccess コンテキストでは、パターンは最初に、サーバーを現在の RewriteRule に導いたプレフィックスを削除した後、ファイルシステム パスと照合されます (たとえば、ディレクティブの場所に応じて「app1/index.html」または「index.html」)。定義されています)。

ホスト名、ポート、またはクエリ文字列と照合する場合は、それぞれ %{HTTP_HOST}、%{SERVER_PORT}、または %{QUERY_STRING} 変数で RewriteCond を使用します。

/EVENTS/,/Events/,& /events/ からページを提供する正当な理由がない限り、[NC] No Case宣言は必要ありません。したがって、.htaccessのルールは次のようになります。

RewriteRule ^events/([^/\.]+)/?$ events.php?eventdate=$1 [L]

VirtualHostコンテキストでは、次のようになります。

RewriteRule ^/events/([^/\.]+)/?$ /events.php?eventdate=$1
于 2013-04-26T21:16:50.840 に答える