.htaccess url为子域重写

时间:2014-04-03 12:20:00

标签: php regex apache .htaccess mod-rewrite

我在子域domain.com/blog/landing-page/中有一个页面。

我想将其打开为domain.com/,因此用户无法知道我的网页所在的位置。

我尝试下面的代码,但它对我不起作用,

RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+blog/landing-page[/\s] [NC]
RewriteRule ^ / [R=301,L]

我写了这个,但它打开域名/博客

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+blog/landing-page/([^\s]+) [NC]
RewriteRule ^ %1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (?!^dirname/)^(.*)$ /blog/landing-page/$1 [L,NC]

我怎样才能让它发挥作用?

3 个答案:

答案 0 :(得分:1)

这应该有效

RewriteEngine  On
RewriteBase /

RewriteCond %{REQUEST_URI} blog/landing-page/?$ [NC]
RewriteRule .* / [R=302,L]

可能你和Regex有问题,但确认你的RewriteBase也很有帮助。我离开了R=302,以便您可以在承诺更长久的R=301之前测试所有内容

答案 1 :(得分:1)

这应该在root .htaccess中运行:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+blog/landing-page[/\s?] [NC]
RewriteRule ^ /? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?!blog/landing-page/).*)$ /blog/landing-page/$1 [L,NC]

答案 2 :(得分:0)

参考这个。这会奏效。

http://chinjuharish.wordpress.com/2014/04/03/convert-incoming-url-from-upper-case-to-lower-case/

希望这会对你有所帮助。