1

.htaccess ファイルで次のコードを実行しました。ファイルはサブフォルダーにあります。たとえば、/ content /.

   RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d 
    RewriteRule ^([^/]+)(/([^/]+))?(/(edit)+)(/([^/]+))?/?$ edit.php?category=$1&slug=$3&edit=$5&password=$7 [L]
    RewriteRule ^([^/]+)(/([^/]+)?/?)$ content.php?category=$1&slug=$3 [L]

上記のコードが書き直されることを期待していますが、

  1. mydomain.com/content/text1/text2/edit/my_password から mydomain.com/content/edit.php?category=text1&slug=text2&password=my_password
  2. mydomain.com/content/text1/text2 から mydomain.com/content/content.php?category=text1&slug=text2
  3. mydomain.com/content/text1 から mydomain.com/content/content.php?category=text1
  4. mydomain.com/content/ から mydomain.com/content/content.php へ

上記のコードは正しく書き直されていますが、アセットの URL が壊れています。たとえば、 http://mydomain.com/content/js/tms.jsを別のものに書き換えます。css ファイルについても同様です。私の資産フォルダーは /img、/css、/js です。

行にコメント RewriteRule ^([^/]+)(/([^/]+))?(/(edit)+)(/([^/]+))?/?$ edit.php?category=$1&slug=$3&edit=$5&password=$7 [L] すると、アセットに対して機能します

これを修正する方法はありますか?

4

1 に答える 1

0

条件RewriteCond %{REQUEST_FILENAME} -dは、「リクエストが既存のディレクトリに対するものであること」を意味します。!の前にa を追加する-dと、「要求は既存のディレクトリに対するものではありません」に変更されます。

試す:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)(/edit)+/([^/]+?)/?$ edit.php?category=$1&slug=$2&password=$4 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+?)/?$ content.php?category=$1&slug=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+?)/?$ content.php?category=$1 [L]
于 2013-03-03T12:07:48.697 に答える