Перенаправить пропущенную последнюю косую черту - PullRequest
0 голосов
/ 25 февраля 2012

Вот мое правило перенаправления:

RewriteCond %{HTTP_HOST} ^mydomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
RewriteRule ^somedir\/?(.*)$ "http\:\/\/mydomain\.com\/newdir\/somedir\/$1" [R=301,L]

При попытке дозвониться до

mydomain.com/somedir/Test.pdf

Я перенаправлен на

www.mydomain.com/newdir/somedirTest.pdf (no slash before Test.pdf)

вместо

www.mydomain.com/newdir/somedir/Test.pdf (slash present)

Чего мне не хватает?

редактирование:

Вот мой весь .httaccess

RewriteEngine on

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html

RewriteCond %{HTTP_HOST} ^mydomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$
RewriteRule ^somedir/?(.*)$ "http://mydomain.com/newdir/somedir/$1" [R=301,L]

Я заметил, что перенаправление работает нормально, если я пишу

www.mydomain.com/somedir/Test.pdf

, но перенаправляет без окончательной косой черты с

mydomain.com/somedir/Test.pdf

1 Ответ

1 голос
/ 25 февраля 2012

Код кажется правильным. Хотя я предлагаю вам изменить RewriteRule на:

RewriteEngine on

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

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html

Нет необходимости использовать обратную косую черту.

...