mod_rewrite Внутренняя перезапись с отображением нового URL - PullRequest
0 голосов
/ 04 июня 2011

Я использую Mod_Rewrite для перезаписи (внутренних) некоторых старых страниц на новые страницы на моем сайте.

Это работает:

RewriteRule ^thispage\.html$ thatpage.html 

Проблема в том, что страница меняется на новую страницу (это хорошо!), Но не меняет имя (URL) с «thispage» на «thatpage», поэтому пользователю подсказывают новый адрес. Apache (2.x) заявляет, что ставит [R] после вышеуказанного скрипта, т.е.

RewriteRule ^thispage\.html$ thatpage.html [R]

Предположительно, это позволяет пользователю узнать, что оно изменилось, и отправляет его на новую страницу.

Когда я добавляю [R], я получаю ошибку 500. Сервер Apache / 1.3.33.

Я думаю, что единственный способ заставить сервер показать новый URL-адрес - это использовать перенаправление вместо перезаписи. Есть идеи?

Любая помощь искренне ценится!

Ответы [ 2 ]

2 голосов
/ 04 июня 2011

Вы пробовали это?

RewriteRule ^thispage.html$ thatpage.html [R=301,L]

В качестве альтернативы перенаправление было бы проще на сервере, чем перезапись ...

Redirect 301 thispage.html http://yourDomain.com/thatpage.html
0 голосов
/ 12 февраля 2012

Чтобы не отображать новый URL, вы должны удалить [R], потому что [R] для отображения нового URL

...