1

htaccessやmod_rewriteなどの経験はあまりありませんが、どのように削除しますか? 次のような URL から:site.com/?pageのようになりますsite.com/page

私は現時点でこれを試しています:

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?([^&\ ]+)
RewriteRule ^ /%1? [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]

しかし、それはすべてをインデックスページにリダイレクトするだけsite.comで、URL には他に何もありません。

4

1 に答える 1

0

後方参照が正しくありません。%{THE_REQUEST}最初のグループ ( ) ではなく、の 2 番目のグループに一致させたいと考えていindex.phpます。したがって、最初のルールは次のようになります。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?([^&\ ]+)
RewriteRule ^ /%2? [L,R=301]
# 2 here--------^

2番目のグループ分けが([^&\ ]+)試合になります。

于 2012-12-10T06:33:31.923 に答える