.htaccess htaccess从子域到子目录路径的内部重写

.htaccess htaccess从子域到子目录路径的内部重写,.htaccess,mod-rewrite,dns,subdomain,.htaccess,Mod Rewrite,Dns,Subdomain,我至少24小时都在忙这个问题,我似乎无法让这个脚本工作。脚本根本不重定向 RewriteEngine On RewriteCond %{HTTP_HOST} ^m\.skynet\.com$ RewriteRule ^/(.*)$ /mobile/final/$1 [L,NC] 我做错了什么 更新: RewriteEngine On RewriteCond %{HTTP_HOST} ^m\.skynet\.com$ RewriteCond %{REQUEST_URI} !^/mobile/f

我至少24小时都在忙这个问题,我似乎无法让这个脚本工作。脚本根本不重定向

RewriteEngine On
RewriteCond %{HTTP_HOST} ^m\.skynet\.com$
RewriteRule ^/(.*)$ /mobile/final/$1 [L,NC]
我做错了什么

更新:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^m\.skynet\.com$
RewriteCond %{REQUEST_URI} !^/mobile/final/
RewriteRule ^(.*)$ /mobile/final/$1 [L,NC]
这部分是可行的,但是像m.skynet.com\download.php这样的链接不会被重定向

更新:45分钟后

现在它突然起作用了。 但是这个URL在FireFox中被重写,而在Chrome中则可以正常工作

更新
似乎Firefox的问题是由我之前使用的301重定向引起的,缓存必须刷新。要使其再次正常工作,请从匹配中删除前导斜杠:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^m\.skynet\.com$
RewriteCond %{REQUEST_URI} !^/mobile/final/
RewriteRule ^(.*)$ /mobile/final/$1 [L,NC]
  • .htaccess
    符合目录指令,Apache从
    RewriteRule
    URI模式中删除当前目录路径(因此是前导斜杠)
  • 您需要
    RewriteCond%{REQUEST\u URI}^/移动/final/
    以防止循环

似乎您的解决方案部分有效,当我输入例如:m.skynet.com/download.php时,我无法重定向到目录中的页面不确定
/download.php
的特殊之处,但此规则将重写为
/mobile/final/download.php