这是我的.htaccess文件中的代码,该文件位于我的共享托管的根目录中。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME}!-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9\-]+)?$ interest.php?interest=$1 [QSA,L]
RewriteRule ^([a-zA-Z0-9\_\-]+)?/$ interest.php?interest=$1 [QSA,L]
问题是,在同一目录中是我添加域的文件夹。当我尝试访问它们时,第二行是创建问题并将其重定向到我的主域。我希望.htaccess只影响根文件夹而不影响其子文件夹。我尝试在这里阅读其他类似的问题,并尝试相应地更改我的htaccess但问题仍未得到解决。
例如。 它的重定向
mysubdomain.mydomain.com
到
www.mydomain.com/mysubdomainfolder
答案 0 :(得分:1)
你的第一条规则如下:
RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
然后清除浏览器缓存并重新启动浏览器。
答案 1 :(得分:0)
嗯,.htaccess文件旨在递归应用。
如果您不想重定向,可以尝试在每个子文件夹中放置一个.htaccess,这些子文件夹与RewriteEngine Off的域名相对应,如果您需要,可以尝试使用备用重写规则。
此外,您可能希望为规则添加其他重写条件,例如您的添加域名是blah.com,您可以添加
RewriteCond%{HTTP_HOST}!^(。*。)?blah.com
编辑:我应该添加新的重写条件,应该低于RewriteCond%{HTTP_HOST}!^ www。
Edit2:好的,那么子域名。在这种情况下,您基本上需要添加一个重写条件,指定如果它是已知的子域,则不应用重写规则。例如:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} !^(subdomain1|subdomain2|subdomain3)\.domain\.com
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
现在subdomain1.domain.com不会重定向(或subdomain2 / 3),www.domain.com将不会重定向,但其他任何内容都将重定向。