301 перенаправление из строки запроса на простой URL - PullRequest
1 голос
/ 16 августа 2011

Я пролистал первые десять страниц результатов поиска по запросу "301 redirects" и не могу найти ответ, так что вот так ...

Я перешел с дерьмового прошлогоCMS, которая не давала моим страницам приятные URL-адреса тем, которые делают, и я хочу настроить перенаправление 301 для моих ключевых страниц.

Текущий URL-адрес: http://www.domain.com/?pid=22 Новый URL-адрес: http://www.domain.com/contact/

Я использую Wordpress, и мой текущий файл htaccess выглядит следующим образом:

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

</IfModule>

Любая помощь будет потрясающей!

Ответы [ 2 ]

0 голосов
/ 16 августа 2011

Вы должны проверить строку запроса для значения в переменной "pid" и затем перенаправить, если значение в этой переменной соответствует странице, которую вы хотите перенаправить.Вы можете сделать это с помощью директив RewriteCond и RewriteRule, например:

RewriteEngine On
RewriteBase /

# Redirect pid=22 to http://www.domain.com/contact
RewriteCond %{QUERY_STRING} ^pid=22$
RewriteRule ^(.*)$ http://www.domain.com/contact [R=301,L]

Вы можете повторить директивы RewriteCond и RewriteRule для создания дополнительных перенаправлений.

0 голосов
/ 16 августа 2011

Дайте это попробовать.Все, что вам нужно сделать, это проверить, находитесь ли вы на странице X, а затем перенаправить на страницу Y. Считайте, что операторы RewriteCond являются операторами «если».Если вам нужно больше перенаправлений, просто продублируйте последние две строки и отредактируйте пути.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.domain\.com\/?pid=22$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/contact [L,R=301]
...