Как мне исправить это правило перезаписи URL? - PullRequest
0 голосов
/ 23 октября 2009

в основном нужно конвертировать

с www или нет, example.com/[anycharacter]

в

с www или без

дополнительно ...

Я бы хотел перенаправить ВСЕ www.example.com в example.com

Ответы [ 2 ]

2 голосов
/ 23 октября 2009

Это должно работать для вас:

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

RewriteCond %{REQUEST_FILENAME} !cgi-bin/new-disk.cgi/dir/smooth
RewriteRule ^(.*)$ /cgi-bin/new-disk.cgi/dir/smooth/$1 [L]

Для первых двух строк он проверяет, есть ли у вас www в вашем URL. Если это так, верните его в версию без www.

Обратите внимание на восклицательный знак (!) во второй последней строке. Это не оператор, и в этом тесте он проверяет, является ли ваш запрошенный файл вашим окончательным файлом перезаписи, в данном случае:

cgi-bin/new-disk.cgi/dir/smooth

Если это так, добавьте его в тот сценарий перезаписи, который вы указали в последней строке.

Символ $ 1 ссылается на первую группу захвата, отмеченную первым набором скобок в той же строке.

0 голосов
/ 23 октября 2009

Для части вашего ответа, я полагаю, вы можете использовать это в качестве примера, чтобы основаться ... надеюсь, вы используете тестовый домен:

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

Может потребоваться добавить (.*) и сделать его необязательным для другой части.

...