0

データベースからデータを取得するプロジェクトを行っています。URL書き換え方式を採用しています。エラーページにリダイレクトする書き換えメソッドを使用していました

動的 URL

http://www.sample.com/?cat=kk

書き換えられた URL

http:/www.sample.com/kk

この URL 書き換え用に書き込まれた.htaccessファイル

RewriteEngine On
RewriteRule ^([^/]*)$ /?cat=$1 [L]

.htaccess ファイルには、別の URL 書き換えも含まれています。

 RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)\.html$ /?cat=$1&sub=$2&year=$3&page=$4 [L]


 RewriteRule ^([^/]*)/([^/]*)$ /?cat=$1&sub=$2 [L]

 RewriteRule ^([^/]*)/([^/]*)$ /?cat=$1&sub=$2 [L]

 RewriteRule ^([^/]*)/([^/]*)/$ /?cat=$1&sub=$2 [L]

 RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /?cat=$1&sub=$2&pag=$3 [L]

 RewriteRule ^([^/]*)/$ /?cat=$1 [L]

  RewriteCond %{REQUEST_FILENAME} !-f

  RewriteCond %{REQUEST_FILENAME} !-d

私が抱えている問題は、ページにアクセスすると、サーバーのデフォルトのエラーページにリダイレクトされることです。

4

1 に答える 1

0

申し訳ありませんが、あなたの書き直しは面倒です。

常に最も複雑なものから最も単純なものへと開始してください。

そして、最も重要なディレクティブの 1 つを忘れていますQSA。私はあなたにこれをググってもらいました;)

以下はまだうまくいかないかもしれませんが、すっきりしています。何が起こっているのかを知るには、ログ ファイルが必要です。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)\.html$ /?cat=$1&sub=$2&year=$3&page=$4 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /?cat=$1&sub=$2&page=$3 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/?$ /?cat=$1&sub=$2 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/?$ /?cat=$1 [QSA,L]
于 2012-08-07T19:42:26.990 に答える