Перенаправление кода .htaccess без изменения URL - PullRequest
0 голосов
/ 13 июня 2011

У меня есть этот код htaccess. Я хочу перенаправить запросы в / about и / learn к содержимому папки / wordpress без изменения адресной строки

#Rewrite engine rules
RewriteEngine on
RewriteBase /

RewriteCond $1 !^(index\.php|import\.php|geocode\.php|robots\.txt|BingSiteAuth\.xml|y_key_88c0d00f4917d584\.html|favicon\.ico|images|img|uploads|css|js|topics|wordpress)
RewriteRule ^(.*)$ /index.php/$1 [L]

RewriteRule ^about$ /wordpress [L]
RewriteRule ^learn$ /wordpress [L]

со следующей структурой с / content в качестве веб-корня:

/content
 /wordpress
  index.php (the wordpress index.php)
 .htaccess (the one we are editing)
 index.php (the codeigniter index.php)

Однако код htacess не работает.

Ответы [ 2 ]

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

Оказывается, что адресная строка меняется, если вы перенаправляете в корень WordPress. Итак, что я сделал, так это создал страницу «учиться» и «о» в Wordpress, чтобы они открывались / wordpress / learn и /wordpress/about.

Затем поместите это выше ваших правил (чуть ниже объявлений RewriteEngine и RewriteBase):

RewriteRule ^about/$ /wordpress/$1 [L]
RewriteRule ^learn/$ /wordpress/$1 [L]

запросы к / about и / learn затем будут перенаправлены соответственно на / wordpress / about и / wordpress / learn без изменения адресных строк.

ПРИМЕЧАНИЕ. В Chrome возникают проблемы.

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

Попробуйте переместить свои конкретные правила выше правила подстановочного знака.

В настоящее время у вас есть

RewriteRule ^(.*)$ /index.php/$1 [L]

Перед вашими конкретными правилами, это правило будет срабатывать первым. Что касается ваших конкретных правил (о / Learn), вы можете перенаправить на /wordpress/index.php

Имейте в виду, что если в вашей папке WordPress есть файл .htaccess, он будет использоваться вместо вашего CodeIgniter / Root, однако, похоже, он не указан в вашем списке файлов.

...