301 перенаправление без индекса - PullRequest
0 голосов
/ 20 июня 2011

Я видел много 301 вопросов, но я не нашел решения для себя, поэтому я просто опубликую его здесь.

Стандартный 301 выглядит примерно так:

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

Ну, когда я захожу на свой веб-сайт, я в конечном итоге на www.domain.tld / index.php / restofquery.Я хочу попасть на www.domain.tld /, когда перехожу к домену domain.tld, и мне также не нужен index.php в любом другом запросе.Поэтому domain.tld / articlebla должен быть www.domain.tld / articlebla.

Есть ли способ сделать это?

С наилучшими пожеланиями.

1 Ответ

0 голосов
/ 20 июня 2011

Чтобы просто добавить www, вы должны сделать:

RewriteCond %{http_host} ^301redirect\.de$ [NC]
RewriteRule ^/?$ http://www.301redirect.de/ [R=301,NC]

Чтобы добавить другие части URL-адресов и www, вы должны сделать:

RewriteCond %{http_host} ^301redirect\.de$ [NC]
RewriteRule ^(.*?)/?$ http://www.301redirect.de/$1/ [R=301,NC]

Если вы имеете в виду, что не хотите получить исходную строку запроса в URL-адресе перенаправления, тогда это будет работать:

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

Добавление ? в конец RewriteRule означает, что строка запроса не будет добавлена.

...