/ / .htaccess przepisać z podkatalogu - .htaccess, mod-przepisać

.htaccess przepisywanie z podkatalogu - .htaccess, mod-rewrite

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 № 1

Sugeruję 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.