Jakakolwiek pomoc w tym zakresie byłaby mile widziana.
Konfiguruję 301 przekierowań w pliku .htaccess, aby przekierowywać setki starych adresów URL do najnowszych aktywnych stron.
Mój plik .htaccess znajduje się obecnie w katalogu głównym domeny i wygląda mniej więcej tak:
RewriteCond %{QUERY_STRING} ^pName=product-one$ [OR]
RewriteCond %{QUERY_STRING} ^pName=product-two$ [OR]
RewriteCond %{QUERY_STRING} ^pName=completely-different-name$
RewriteRule ^catalog/product_info.php$ http://www.mydomain.com/new-product-name-p-123.html? [R=301,L]
Podczas szukania odpowiedzi na temat tego, jak zbiorczoprzekieruj do jednego adresu URL za pomocą .htaccess. Przeczytałem, że rozsądnie byłoby zmienić lokalizację pliku .htaccess i umieścić go w określonych katalogach, do których ma on zastosowanie, więc żądania do innych katalogów nie były nawet zgodne z tymi regułami.
Więc umieściłem.plik htaccess w określonym podkatalogu, który jest katalogiem, ale przekierowanie nie działa. Czego tu brakuje? Chcę, aby reguły przekierowywania adresów URL były umieszczane w pliku .htaccess w folderze katalogu, aby wszystkie reguły przepisywania nie były ładowane przy każdym ładowaniu katalogu głównego .htaccess.
Odpowiedzi:
0 dla odpowiedzi № 1Sugeruję zmianę linii przekierowania 301, aby zawierała ścieżkę bezpośrednio do folderu katalogu OSCommerce.
Więc zamiast używać
RewriteRule ^catalog/product_info.php$ http://www.mydomain.com/new-product-name-p-123.html? [R=301,L]
użyj np .:
Redirect 301 /website/catalog http://www.mydomain.com/page2.htm
lub
Redirect 301 /catalog http://www.mydomain.com/page2.htm
Opcja 1) jest, jeśli twój katalog znajduje się na http://youdDomain.com/website/catalog/ . Jeśli znajduje się na http://youdDomain.com/website/aaa/catalog/ użyjesz:
Redirect 301 /website/aaa/catalog http://www.mydomain.com/page2.htm
Przetestowałem to na własnym serwerze internetowym - mam nadzieję, że to pomoże.
0 dla odpowiedzi nr 2
Po umieszczeniu pliku .htaccess w podkatalogu należy go dostosować RewriteRule
wzór odpowiednio. mod_rewrite usuwa przedrostek katalogu, w którym znajduje się plik .htaccess, patrz RewriteRule - What is matched?
.
Musisz zmienić regułę na
RewriteRule ^product_info.php$ ...
Jeśli masz wiele ścieżek URL do przepisania, możesz także zajrzeć RewriteMap
.