2012-02-28 1 views
0

Таким образом, на данный момент, моя .htaccess выглядит немного как это:.htaccess перенаправление горести - не завершить

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

RewriteCond %{HTTP_HOST} ^colorspace\.am$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.colorspace\.am$ 
RewriteRule ^portfolio\/?(.*)$ "http\:\/\/i\.colorspace\.am\/portfolio$1" [R=301,L] 

Я хочу, чтобы переместить все содержимое из моего корневого каталога в поддомен (который я вы сделали), но я не хочу, чтобы ссылки люди не работали. www.colorspace.am/portfolio необходимо перенаправить на i.colorspace.am/portfolio, и все содержащиеся в нем комплекты (то есть/портфолио/YYYYMMDD) также необходимо «скорректировать» на лету (www.colorspace.am/portfolio/YYYYMMDD -> i.colorspace.am/porfolio/YYYYMMDD

ПРИМЕЧАНИЕ: содержание i.colorspace.am в 2011 году, ii.colorspace.am будет содержать 2012 год. Это две совершенно разные установки WP со своими соответствующими базами данных . Не уверен, что если это отношение, но ..

что, кажется, происходит то, что/портфель поручено перенаправлять i.colorspace.am/portfolio, но по какой-то причине это в конечном итоге на i.colorspace.am

Если есть способ, я могу сделать ny www.colorspace.am/folder/sub-folder перенаправить на i.colorspace.am/folder/sub-folder (wildcard?) .. это было бы потрясающе. Но я был бы так же доволен одной полностью работающей переадресацией на данный момент.

ПРИМЕЧАНИЕ: код перенаправления был создан моей административной панелью. Я пробовал

Redirect /portfolio http://i.colorspace.am/portfolio 

Но это привело к ошибке «слишком много переадресаций».

ответ

0

После перенаправления из

RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L] 

Правил

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

доступ снова. Именно по этой причине он заканчивается на i.colorspace.am.

Добавьте эти 2 правила

RewriteCond %{HTTP_HOST} ^(?:www\.)?i.colorspace\.am$ 
RewriteRule protfolio -[L] 

в указанную ниже.

также меняется (только небольшая оптимизация)

RewriteCond %{HTTP_HOST} ^colorspace\.am$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.colorspace\.am$ 
RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L] 

в

RewriteCond %{HTTP_HOST} ^(?:www\.)?colorspace\.am$ 
RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L] 

и поместить его внутри IfModule блока в том же порядке, указанном ниже.

Есть только ниже в вашем .htaccess:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

#add these 2 lines: 
RewriteCond %{HTTP_HOST} ^(?:www\.)?i.colorspace\.am$ 
RewriteRule protfolio -[L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

RewriteCond %{HTTP_HOST} ^(?:www\.)?colorspace\.am$ 
RewriteRule ^portfolio\/?(.*)$ http//i.colorspace.am/portfolio$1 [R=301,L] 

</IfModule> 
# END WordPress 
+0

Был последний блок (начиная # НАЧАТЬ WordPress, заканчивая) * ПОЛНЫЙ * .htaccess код, или только то, что содержится в WP/IfModule? Я прошу, потому что там были биты, где вы сказали «добавить ниже» и т. Д. И т. Д., А затем ваш окончательный код содержит правила, которые я устанавливал вне модуля. Поэтому должен ли я иметь правила вне модуля и те же самые в нем, или я просто делаю огромный беспорядок вещей: | Я пробовал [только] код выше, и я заканчиваю на i.colorspace.am ..поэтому я собираюсь скопировать их обратно на улицу и посмотреть, как это происходит: | –

+0

Просто попробовал с кодом внутри и снаружи. Не повезло :(НО, похоже, что все это ловят (ранее/портфолио перенаправлялось, но/портфолио/YYYYMMDD не было) –

+0

@AlexMasters Просто у вас есть переписывающие элементы, указанные в ответе. Также удалите кеш браузера. 301 (постоянный) перенаправления перенаправляются строго. – ThinkingMonkey

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