2016-05-01 4 views
1

У меня есть сайт, который использует htaccess для перезаписи всех страниц на индексную страницу с помощью хэша, который затем используется для обслуживания содержимого. Файл выглядит следующим образом ....htaccess переписать после перенаправления

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^?]*)$ /index.php?urlpath=$1 [NC,L,QSA] 

Я теперь переместить некоторые из страниц сайта, однако если добавить редирект, такие как ....

Redirect 301 /blog /new_location/blog/ 

Я бегу проблем с результирующей URL, глядя, как

https://mydomain/new_location/blog/urlpath=blog.php

Может кто-нибудь предложить способ, который я получаю страницу для перенаправления MYDOMAIN/NEW_LOCATION/блог /, а затем запустить перезапись на новый URL.

Большое спасибо

ответ

0

ОК, мне удалось получить эту работу, используя комбинацию Redirect и Перепишите, как так ....

Redirect 301 /blog /new_location/blog 

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !/blog 
RewriteRule ^([^?]*)$ /index.php?urlpath=$1 [NC,L,QSA] 

Может быть, не опрятная решение, но это работает!

0

RewriteRule и Redirect из различных модулей Apache, поэтому работать в разное время в процессе обработки, а не в порядке их появления в конфигурации. Лучше всего придерживаться одного модуля или другого, используя флаг [R] до RewriteRule.

RewriteRule /blog(.*) /new_location/blog$1 [R=301] 
+0

Я изменил Перенаправление на RewriteRule, но он не работал так, как надеялся, поскольку новый URL-адрес (/ new_location/blog) не передается на индексную страницу, поэтому он пытается найти содержимое страницы, используя оригинал url (/ blog) не нашел контента. – Jules

Смежные вопросы