0

以下を使用して、www 以外をリダイレクトしています。使用する URL www.:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

</IfModule>
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "http://www.domain.com/"
</IfModule>

ただし、誰かが domain.com/abc-123 にアクセスすると、www.domain.com にリダイレクトされ、残りの URL が失われます。

これについて何か助けはありますか?URL の末尾を削除しないように設定するにはどうすればよいですか?

ミロ

4

1 に答える 1

1

ルールの順序を入れ替えるだけです。最初の (WP) ルールがパスを削除しているため、2 番目のルールが適用されるまでにパスは空になります。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "http://www.domain.com/"
</IfModule>
于 2012-04-29T15:26:44.353 に答える