Przechowuję dynamiczną zawartość i statyczną zawartość w różnych subdomenach dla mojej aplikacji internetowej, ale niedawno odkryłem, że jeśli zostanie wywołana bezpośrednio, dynamiczna zawartość może być wyświetlana na mojej statycznej poddomenie (www .) lub w ogóle nie ma poddomeny.Wyklucz konkretną subdomenę lub nie subdomenę w htaccess RewriteRule
URL Struktura:
http(s)://(subdomain).(domain).(tld)/(static page) OR (direct/random hash) OR (secure/random hash)
Wszystko statyczny jest dostępny za pośrednictwem "www", co skutkuje moich SEO Friendly domen takich jak
http(s)://www.domain1.com/about
http(s)://www.domain1.com/
http(s)://www.domain2.com/about
http(s)://www.domain2.com/
Podczas dynamicznej zawartości oglądane za pośrednictwem aplikacji internetowej byłby dostępny z domeny, takiej jak
http(s)://dynamic1.domain1.com/direct/randomhash
http(s)://dynamic2.domain1.com/direct/randomhash
http(s)://dynamic1.domain2.com/direct/randomhash
http(s)://dynamic2.domain2.com/direct/randomhash
To jest mój bieżący plik .htaccess
Zasady przepisać dynamiczne linki gdzie URI rozpoczyna się z secure
lub direct
jak również wszelkich rozszerzeń plików do pliku index.php.
Header set Connection keep-alive
<IfModule mod_dir.c>
DirectorySlash Off
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index.php - [L]
RewriteRule ^(secure|direct) /index.php [L]
RewriteCond %{REQUEST_URI} !^/server-status
RewriteCond %{REQUEST_URI} !^/public/cache
RewriteRule !\.(png|gif|css|jpg|zip|js|html|htm|swf|ico|fon|ttf|otf|svg|woff|woff2|eot)$ /index.php [L]
</IfModule>
Powyższy obecnie pracuje ale moim problemem jest to, że jeśli użytkownik po prostu zmienia domenę podrzędną od tej stosowanej dla dynamicznych treści WWW będzie nadal działać i spowoduje dynamicznej zawartości są dostępne z moim SEO Friendly poddomena.
Mam nadzieję, że będę w stanie edytować tę regułę RewriteRule ^(secure|direct) /index.php [L]
, tak aby wykluczyć ją, jeśli istnieje aktywna poddomena www.
lub żadna poddomena razem, dopóki działa, jeśli domena lub poddomena jest czymkolwiek innym.
To znaczy subdomena lub domena nadal być wieloznaczny, chyba że subdomena jest www.
Jestem zakładając muszę dodać %{HTTP_HOST}
do RewriteRule ^(secure|direct) /index.php [L]
i użyć wyrażenia regularnego, aby umożliwić dowolną domenę podrzędną , domain i tld, ale nie jestem pewien, jak wykluczyć, jeśli host http zaczyna się od WWW. lub w ogóle nie ma poddomeny.
Mój cel końcowy polega na tym, że ścieżki secure
i direct
nie mogą być oglądane za pośrednictwem www.
lub poddomeny, ale nadal pracują z dowolną inną subdomeną/domeną.
Czy próbowałeś sprawdzić ''' w' RewriteCond'? – Cole
Podobnie jak sidenote, 'png | gif | css | jpe? G | zip | js | html? | Swf | ico | fon | [ot] tf | svg | woff2? | Eot' działa trochę lepiej niż twoje obecne wyrażenie regularne i pozwala także na 'jpeg'. – ctwheels
Więc '/ secure' i'/direct' powinny być dozwolone tylko z domeny głównej (www i bez www)? – anubhava