0
  Options +FollowSymlinks
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME}\.php -f
  RewriteRule ^news/([^/]+)  /casino2/newsdetail.php?newsid=$1 [NC]

現在、上記のコードを使用し て、2つのクエリ文字列から1つのURLを作成しようとしています。たとえば、URLがそうである場合http://localhost/casino2/newsdetail.php?newsid=3、 URLはそうあるべき ですか?http://localhost/casino2/news/3localhost/casino2/newsdetail.php?newsid=3pagename=articlelocalhost/casino2/news/article

4

1 に答える 1

0

まず、これらのルールは、あなたが望むこととは逆のことをしているように見えます。つまり、「/ localhost / casino2 / news/4711」を「/casino2/newsdetail.php?newsid=4711」に書き換えています。

これがあなたの本当の意味であるならば、あなたがする必要があるのは、次のように、1つの変数に1つだけではなく、2つの変数に2つのアイテムを保存することです。

RewriteRule ^news/([^/]+)/([^/]+)  /casino2/newsdetail.php?newsid=$1&pagename=$2 [NC]

newsidが常に1である場合、それをphpに渡す必要がないので、次のように、代わりにニュースIDを作成するだけです。

RewriteRule ^news/([^/]+)  /casino2/newsdetail.php?newsid=1&pagename=$1 [NC]

これにより、次の書き換えが作成されます。

/ news / article-> /casino2/newsdetail.php?newsid=1&pagename=article / news / somethingelse-> /casino2/newsdetail.php?newsid=1&pagename=article

ただし、さまざまなニュースIDを選択できるようにする場合は、URLの一部またはクエリ文字列としてどこかに渡す必要があります。

明確にするために、ルールが適用される方法は次のとおりです。

RewriteRule "What the URL looks like in the browser" "What my web server expects" 

問題がある場合は、多くのデバッグログをオンにすることを強くお勧めします。これは大きな助けになります。関連する構成行は次のとおりです。

RewriteLog /path/to/logfile
RewriteLogLevel 3
于 2012-05-08T10:04:03.027 に答える