削除する必要がある疑問符を含む複数のURLがあります。このURLへ.htaccessパラメータを指定しないで疑問符をリダイレクト
http://example.net/?/services
:たとえば、私はこのURLをリダイレクトする必要が
http://example.net/services
私はこのような多くのより多くを持っているので、私は適切に疑問符として、すべてをキャッチすることができます何かをしたいと思いますそれをリダイレクトします。私が見つけた答えの多くは、書き換えの条件としてQUERY_STRING
を使用しようとしていましたが、パラメータを使用しないとこれは役に立ちません。掘り下げた後、私はRewiteCond
が動作するが、RewriteRule
は疑問符のないURLではなく、ホームページにリダイレクトすることが分かった。私が現在持っていることはこれです:
# Remove question mark from string
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?([^&\ ]+)
RewriteRule^/%1? [L,R=301]
# Removes index.php from ExpressionEngine URLs
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
# Directs all EE web requests through the site index file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
最初のブロックは、私がこれまで持ってリライトされ、そして次の二つは、CMSのURLルーティングのためのものです。何が起こっているように見えるのは、最初のブロックの書き換えが残りのURLを保持していないということです。私はいくつかの組み合わせを試したが、URLの残りの部分をそのまま維持する方法を理解できないようだ。
これは素晴らしい動作です!ありがとう! –