2017-01-27 4 views
0

У меня есть файл в корневом каталоге с именем propertyid.phpHtaccess - ReWrite одно правило к другому правилу (виртуальная папка)

У меня есть RerwiteRule, который работает OK: RewriteRule for-sale/(.*) propertyid.php?pid=$1

Пользователь вводит этот URL и те же URL отображается в адресной строке domain.com/for-sale/(pid)

Я хочу, чтобы второе правило, которое позволит пользователям вводить этот адрес domain.com/sell/(pid)

, но я хочу, чтобы первый URL для отображения в адресной строке domain.com/for-sale/(pid)

Я попытался несколько вариаций следующего

RewriteRule ^sell$ /for-sale/propertyid.php?pid=$1 
RewriteRule sell/(.*) for-sale?pid=$1 
+0

@ thickguru - Видимо, я сделал плохую работу в моей формулировке предыдущих вопросов. Спасибо, что редактировал мой вопрос. Я отмечаю, что вы удалили мой комментарий о ранее поиске ответа, и, похоже, вы выделили элементы кода. В будущем я постараюсь следовать вашему примеру. Если у вас есть что-то еще, что вы можете указать, чтобы делать/не делать в будущих вопросах, я буду рад вашей обратной связи. – ColinK

ответ

1

Вы должны перенаправить /sell/(.*) на /for-sale/(.*). Правило вашего перенаправления от /for-sale/(.*) до propertyid.php?pid=$1 позаботится обо всем остальном. Просто проверить несколько вещей:

  1. /sell/(.*) к /for-sale/(.*) правило должно прийти выше /for-sale/(.*) к propertyid.php?pid=$1 правила переадресации и должны код возврата 301 HTTP для перемещен навсегда.

  2. Проверьте наличие нескольких переадресаций.

Ваш .htaccess должен выглядеть следующим образом:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^sell(.*)$ http://%{HTTP_HOST}/for-sale$1 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^for-sale/(.*)$ propertyid.php?pid=$1 [L] 
+0

Спасибо за ваш быстрый и идеальный ответ. Я пытался проголосовать за UP, но мой результат меньше 15 (получается, что мои предыдущие вопросы были плохо сформулированы). Возможно, кто-то другой мог проголосовать за этот ответ. – ColinK

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