Перезапись основного URL с помощью mod_rewrite - PullRequest
0 голосов
/ 25 января 2012

Я хотел бы переписать URL одной из моих страниц с

http://www.mydomain.com/some/application/page.html 

до

http://www.mydomain.com/apply

Я считаю, что этот код будет работать. Но в 301 перенаправлениях вы часто видите [R = 301, L] или какую-то версию, добавленную в конец правила перезаписи - является ли приведенный ниже код лучшим способом выполнения перенаправления и поймет ли это Google?

RewriteEngine On
RewriteRule ^([^/]*)\.html$ /some/application/page.html?=$1 [L]

Ответы [ 2 ]

0 голосов
/ 25 января 2012

Я думаю, вы хотите сделать это:

URL, который видят ваши пользователи (даже Google):

http://www.mydomain.com/apply

до

http://www.mydomain.com/some/application/page.html 

внутренний (фактический) URL.

тогда я бы предложил вам пойти по этому:

RewriteEngine On

#condition to redirect
RewriteCond %{REQUEST_URI} ^/?apply/?$
RewriteRule ^/?apply/?$ /some/application/page.html [L]

Флаг [L] ( Флаг L Документы ) означает, что RewriteEngine прекратит переписывать любые правила в дальнейшем. Это не будет выполнять постоянное перенаправление. Вам не нужен флаг [R=301] здесь. 301 для постоянного перенаправления. Используйте короткий URL везде.

0 голосов
/ 25 января 2012

Насколько мне известно, вам потребуется [R=301,L], чтобы правильно выполнить перенаправление. Apache2 по умолчанию будет использовать перенаправление 302, поэтому, если это постоянное перенаправление, вы должны принудительно установить R = 301, как вы заметили. Документация для RewriteRule неясна, если только [L] всегда будет выполнять перенаправление 301. Будь в безопасности, скажи apache, что именно делать: -).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...