0

http://website.com/5/sometitleと入力すると、/ displayvideo.php?id = 5&title = sometitleが開き、現在、次のコードで機能するようにしたいと思います。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/(.*)$ /displayvideo.php?id=$1&title=$2 [L]

ただし、http: //website.com/5にアクセスすると/displayvideo.php?id = 5に移動するように、これを追加して試しました。

RewriteRule ^(.*)$ /displayvideo.php?id=$1 [L]

ただし、これは、/ somefile.phpのような実際のファイルを開くことができないなど、奇妙ながらくたの束になってしまいます。これは、somefile.phpが書き換え者によるidタグであると見なされるためです。

これを行うと、/ displayvideo.php?id = $ 1が新しいルールのタグであると自動的に見なされるため、他の書き換えルールも無効になります。

基本的に、サイトのすべてのページは500内部サーバーエラーになります

誰もがこれを修正する方法を知っていますか?ありがとう

4

2 に答える 2

1

これでうまくいくはずです。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/(.+)$ /displayvideo.php?id=$1&title=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)$ /displayvideo.php?id=$1 [L]
于 2012-05-29T16:11:05.943 に答える
0

正規表現を調整します。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([0-9]+)$ /displayvideo.php?id=$1 [L]
RewriteRule ^([0-9]+)/(.*)$ /displayvideo.php?id=$1&title=$2 [L]
于 2012-05-29T16:10:34.563 に答える