私はかなり標準的な .htaccess ファイルを持っています:
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]
パラメーターが 1 つある場合はうまく機能します。たとえば、これはこれ/mysite/index.php?c=home
と同じように機能します/mysite/home
これ/mysite/index.php?c=home&m=mymethod
はこれと同じように機能し/mysite/home/mymethod
ます...相対的なリソースをロードすることを除いて。
URL/mysite/home/mymethod
は、Web ブラウザーに/mysite/home
ではなく の相対パスを残すようです/mysite/
。に移動して/mysite/home/mymethod
、css、image、または js ファイルを相対パスで読み込もうとすると (たとえば、html は と表示されますcss/site.css
)、ブラウザーはパスの先頭に追加home/
します。つまり、Web ブラウザーは ...home/css/site.css
の代わりに読み込みを試みcss/site.css
ます。要するに、2 番目のパラメーターを指定すると、相対パスがホースされます。
2 番目の uri パラメータを指定すると相対パスが間違っているのはなぜですか?