/ / htaccess przerywa myślnikiem (klawiszem ucieczki) w adresie URL przekierowania - .htaccess, url, mod-rewrite

htaccess zrywa z (ucieczkowym) myślnikiem w adresie URL przekierowania - .htaccess, url, mod-rewrite

Mam zestaw adresów URL w postaci www.website.co.uk/businessname

i mają one na celu przekierowanie proxy htaccess w celu pobrania danych z innej domeny na serwerze.

Oto co mam:

#Start Business pages
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^www.outputside.org.uk/swellcottage$
RewriteRule ^(.*) http://www.datasite.co.uk/$1 [P]

RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^www.outputsite.org.uk/hawthorn-books$
RewriteRule ^(.*) http://www.datasite.co.uk/$1 [P]
#End Business Pages

Pierwsza reguła działa idealnie, wyświetlając zawartość http://www.datasite.co.uk/swellcottage na adres URL www.outputsite.org.uk/swellcottage ale druga reguła / warunek nie działa.

Spojrzałem na ucieczkę - znak w adresie URL jako taki:

  RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^www.outputsite.org.uk/hawthorn-books$
RewriteRule ^(.*) http://www.datasite.co.uk/$1 [P]
#End Business Pages

Ale nadal nie wydaje się, aby włączało się to poprawnie, reguły przepisywania nie działają, a strona odpowiada rezerwowym 404, że strona www.outputsite.org.uk/hawthorn-books nie istnieje.

Gdzie indziej i jak inaczej powinienem uciec od kreski lub inaczej, co jest nie tak z moją składnią tutaj?

ps. Mam to, że nazwy plików (index.php) i nazwy folderów (/ places /) nie podlegają przekierowaniom proxy.

AKTUALIZACJA

W moim htaccess mam więcej zasad:

#to add www. to each request.
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301]

#Start biz pages
...
#End biz Pages

#to prevent error looping
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

Uruchomiłem również ten sam kod powyżej z hawthornbooks bez myślnika, ucieczki lub w inny sposób, a kod działa poprawnie, więc muszę znaleźć właściwy sposób na ucieczkę znaku myślnika. Cały kod i praca to utf-8.

UWAGA: ten problem wydaje się podobny do Dlaczego jeśli wstawię myślnik „-” do reguły w moim htaccess nie działa? ale nie znalazłem rozwiązania tego problemu.

Odpowiedzi:

1 dla odpowiedzi № 1

Jeśli problem jest tylko łącznikiem, powinno to działać:

#Start Business pages
RewriteCond %{HTTP_HOST} ^(www.)?outputside.org.uk$ [NC]
RewriteRule ^(swellcottage)/?$ http://www.datasite.co.uk/$1 [P,NC]

RewriteCond %{HTTP_HOST} ^(www.)?outputside.org.uk$ [NC]
RewriteRule ^(hawthorn.books)/?$ http://www.datasite.co.uk/$1 [P,NC]
#End Business Pages

0 dla odpowiedzi nr 2

To ma być rozwiązanie tymczasowe, a nie trwałe, ale możesz wypróbować następującą regułę:

RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^www.outputsite.org.uk/hawthorn([^/]*)/?$
RewriteRule ^(.*) http://www.datasite.co.uk/$1 [P]

Spowoduje to wyszukanie dowolnego identyfikatora URI zgodnego ze wzorcem www.outputsite.org.uk/hawthorn po którym następuje dowolna liczba znaków (lub zero znaków), które nie jesteś / a następnie kończąc na (opcjonalnie) /.