挺简单一需求啊,死活不行。
需求是这样的:
访问 abc.xxx.com rewrite 到 xxx.com/index.php/cs/abc,要求URL仍然是前者,不能变成后者。
试了下面几个方法都不行:
1、方案一:
RewriteEngine on
RewriteBase "/"
RewriteCond %{HTTP_HOST} ^(.*)\.xxx\.com [NC]
RewriteCond %{REQUEST_URI} !^(/cs|/upload|/styles|/index\.php)
#下面这行加了R flag,[R,L]才生效,不加就不行
RewriteRule ^(.*)$ /cs/%1/$1 [L]
RewriteCond $1 !^(index\.php|upload|styles)
RewriteRule ^(.*)$ /index.php/$1 [L]
加了R以后访问正常,但URL变了,不加R就不生效。
2、方案二:
RewriteEngine on
RewriteBase "/"
RewriteRule ^/(.*)\.xxx\.com(.*)$ /cs/$1/$2 [L]
RewriteCond $1 !^(index\.php|upload|styles)
RewriteRule ^(.*)$ /index.php/$1 [L]
这个不知道为什么 匹配不到第四行的RewriteRule
3、方案三:
RewriteEngine on
RewriteBase "/"
RewriteCond %{HTTP_HOST} ^(.*)\.xxx\.com [NC]
RewriteCond %{REQUEST_URI} !^(/cs|/upload|/styles|/index\.php)
RewriteRule ^(.*)$
http://xxx.com/cs/%1/$1 [L]
RewriteCond $1 !^(index\.php|upload|styles)
RewriteRule ^(.*)$ /index.php/$1 [L]
这条可以匹配,但是RewriteRule里写死了domain,apache会判断这个domain和访问时的domain不一样,然后做了redirect,地址就变了。
环境信息:
Server version: Apache/2.4.6 (CentOS)
Server built: Jun 27 2018 13:48:59
求大神们指点一下问题出在哪里了?怎么实现?谢谢了~~~
--
FROM 1.80.216.*