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

时间:2014-02-09 05:57:01

标签: .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/final/
RewriteRule ^(.*)$ /mobile/final/$1 [L,NC]

这部分有效,但像m.skynet.com \ download.php这样的链接不会被重定向

更新:45分钟后

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

更新 似乎Firefox的问题是由我之前使用的301重定向引起的,必须刷新缓存。让它再次正常工作

1 个答案:

答案 0 :(得分:1)

从匹配中删除前导斜杠:

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_URI} !^/mobile/final/来阻止循环播放。