0

私は素晴らしい動作をするphpを持っていますが、変数を表示することからdirsのように見えるように変更したいと思います

例えば:

example.com/?mode=page&page=15example.com/page/15

example.com/?mode=pic&picid=136example.com/pic/136

しかし、私はそれを行うための1つの方法しか知りません。

RewriteRule ^(.*)$ index.php?mode=$1&page [R]

しかし、それは1つのケースでのみ機能し、それ以外の場合は404s

RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]パス全体が通過するように使ってみました。ただし、この方法では、私のページでCSSが渡されないようです。

私は非常に混乱しています...

これが私のhtaccessファイルです

# Do not remove this line, otherwise mod_rewrite rules will stop working
RewriteBase /

IndexIgnore *


RewriteEngine On


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^css/styles\.css$

RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
4

1 に答える 1

0

問題は、すべての URL を次のように書き換えていることです。

index.php?url=

したがって、CSS ファイルも「index.php?url=」に「リダイレクト」されます。

index.php?url=css/styles.css

したがって、特定のファイル (またはディレクトリ) が「リダイレクト」されないように、.htaccess に「条件」を追加する必要があります。これを行うには、「RewriteRule」の前に「RewriteCond」(条件) を使用します。

たとえば、css ファイル「css/styles.css」を「リダイレクト」しないようにするには、次のようにします。

RewriteCond %{REQUEST_URI} !^css/styles\.css$
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
于 2012-06-03T22:58:22.120 に答える