0

アプリケーションのクリーンな URL を作成しようとしています。そこで、以下のコードを.htaccessファイルに書きました。

RewriteEngine On
Options +FollowSymLinks

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)/(.*)/?$ index.php?p=$1&id=$2 [NC,L]
RewriteRule ^(.*)/?$ index.php?p=$1 [NC,L]

ご覧のとおり、クエリ文字列には最大で 2 つの変数を含めることができます。pおよびid。.htaccess ファイルに 1 つのルール (変数が 1 つのルール) しかない場合は、すべて問題ありません。しかし、最初のルール (変数が 2 つのルール) を追加すると、すべての css、js、およびイメージ ファイルがなくなるようです。
css、images、および js ファイルを次のように記述しました。

./ディレクトリ名/ファイル名

複数のルールできれいな URL を作成するのを手伝ってください。

4

2 に答える 2

0

Front-Controller Patternに従っている場合(つまり、すべてが通過index.phpする場合) を使用することをお勧めしますFallbackResource

FallbackResource /index.php

mod_rewrite同等のものよりも簡潔でパフォーマンスが高いです( anubhavaの回答に見られるように):

于 2013-06-26T20:01:38.153 に答える
0

コードを次のように変更します。

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?p=$1&id=$2 [QSA,L]

RewriteRule ^([^/]+)/?$ /index.php?p=$1 [QSA,L]
于 2013-06-26T20:00:45.217 に答える