こんにちは私はURLを作るために特定のルールを使用しているウェブサイトを持っています。コードは次のとおりです。拡張子を削除して末尾の末尾にスラッシュをつけないようにしてください
Options +FollowSymLinks
Options -Multiviews
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* ? [F,L]
RewriteRule ^([a-zA-Z0-9_-\s]+)/([a-zA-Z0-9_-\s]+)/([0-9]+)/([a-zA-Z0-9_-\s]+)$ /page1.php?var1=$1&var2=$2&var3=$3&var4=$4 [L,QSA]
RewriteRule ^([a-zA-Z0-9_-\s]+)/([a-zA-Z0-9_-\s]+)/([a-zA-Z0-9_-\s]+)$ /page2.php?var1=$1&var2=$2&var3=$3 [L]
RewriteRule ^([a-zA-Z0-9_-\s]+)/([a-zA-Z0-9_-\s]+)$ /page2.php?var1=$1&var2=$2 [L,QSA]
RewriteRule ^([a-zA-Z0-9_-\s]+)$ /page2.php?var1=$1 [L,QSA]
# remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ /$1 [R=301,L]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
ErrorDocument 404 /404.php
場合によっては正常ですが、場合によってはエラーが表示されます。
エラー私は取得しています:
1)それは拡張子を削除せずにPAGE3の内容を示して、私はwww.example.com/page3.phpのために行くとき、私はpage3.phpを持っていると仮定しますURLからwww.example.com/page3と入力すると、変数としてpage3が使用され、ページ2の単一変数で書き換えルールが記述されているため、ページ2の内容が表示されます。私はwww.example.com/var1/としての私のURLを記述する場合
2)それは、www.example.com/var1/.phpとしてURLを書き換えるが、私はとしてそれを書く場合はwww.example.com/var1/var2/これはうまく動いています。すなわち、トラッリングスラッシュを削除しています。
私のURLにwww.example.com/page3PAGE3は私のルートディレクトリにその中にファイルであれば、私はPHPと第二なしに私の.PHPページをリダイレクトしたい最初のエラー1で述べたようにpage3の内容を表示し、page3が私のルートディレクトリにあるファイルでない場合は、page3を変数として取るべきであり、上記の書き換えルールとして動作するはずです。
エラー2私は1つの変数か2または3または4の変数を持っているかどうかURLから末尾のスラッシュを削除したいと思います。
NOTE ... ...事前に感謝を私を助けてください。私はHTTP上のHTTPSないで私のウェブサイトを実行しています。
ありがとうございました...その仕事は絶対にうまくいきます.... – Ashish