我有以下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 / subfolder / other 当我打开sub.domain.com时,它也会转到root / subfolder / another,但我希望它转到root。
所以除了上面我添加了这个:
RewriteCond %{HTTP_HOST} ^sub.domain.com$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
但它仍然转到root /子文件夹/另一个 我该怎么办?
答案 0 :(得分: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]