Имам следния код на htaccess:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/.*
RewriteRule ^(.*)$ subfolder/another/$1 [L]
RewriteCond %{REQUEST_URI} !^/subfolder/another/
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ subfolder/another/index.php
Така че, когато отида на domain.com отива до root / подпапка / друга И когато отворя sub.domain.com, той също отива в root / подпапка / друг, но аз искам да отиде в root.
Затова добавих това в допълнение към горното:
RewriteCond %{HTTP_HOST} ^sub.domain.com$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
но все още отива към root / подпапка / друга Какво трябва да направя?
Отговори:
1 за отговор № 1Ако искате правилото да съвпада само когато поискате сайта от domain.com
, създайте условие, което съответства само, когато поискате от сайта domain.com
, Освен това няма смисъл за мен какво правят първите две правила.
Също така, точките за бягство, когато искате да съвпадат с буквални точки.
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ subfolder/another/index.php [L]
RewriteCond %{HTTP_HOST} ^sub.domain.com$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]