1

Web ページで URL を操作していましたが、2 つのパラメーターを持つ URL の問題を解決できません。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-z\-]+)/?$ index.php?strona=$1 [L]
RewriteRule ^([a-zA-Z0-9-z\-]+)/([a-zA-Z0-9-z\-]+)/?$ index.php?strona=$1&id=$2 [L]

現在の URL に 2 つのパラメーターがある場合 (たとえば、http://example.com/subpage/5を使用している場合) を除いて、URL は問題ないように見えます。

(for example navigation):
http://example.com/subpage_with_2_parameters/home
instead of
http://example.com/home

パラメータが 1 つのページ (例: http://example.com/contact ) は問題なく動作します。

私が考えている唯一の解決策(これは恐ろしいことです)は絶対リンクです。

4

2 に答える 2

4

いわゆるプリティ URLを実装した後に css、js、画像のパスがめちゃくちゃになるというこの問題に対処しているのはあなただけではありません。これらの問題が SO でほぼ毎日報告されているのを見ています。

この問題は、次の 3 つの方法で解決できます。

  1. 最善の解決策は、画像、css、および js ファイルに絶対パスを使用することです。つまり、パスを/またはで始めます。http://

  2. もう 1 つのオプションは、次のように HTML の head セクションで base href タグを使用することです。

    <base href="http://www.example.com/">

  3. 3番目のオプションはmod_rewrite経由です

これらの行を .htaccess ファイルの他の RewriteLine のに置きます。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{DOCUMENT_ROOT}/$1 -f
RewriteRule ^[^/]+/([^.]+\.(?:js|css|jpe?g|png|gif))$ /$1 [L,R=301,NC]
于 2013-05-31T03:58:46.420 に答える