重写从子文件夹和root工作的URL

时间:2015-02-06 01:57:40

标签: php apache .htaccess url mod-rewrite

我建立了一个拥有SEO友好网址的网站,网站上的网址如下所示:http://www.somesite.com/seo/friendly/url

我还有一个用于测试网站的登台服务器。在此服务器上,URL看起来像这样:http://127.0.0.1 /〜somesite / seo / friendly / url

现在,搜索引擎优化网址在实际网站上工作,但测试失败,因为.htaccess中的替换也将/〜somesite子字符串捕获为变量。

如何从index.php所在的位置开始替换?

以下是我现在使用的替换代码:

RewriteRule ^(([\w\-\/])+)$ index.php?page=$1 [L,QSA]

1 个答案:

答案 0 :(得分:0)

我认为这是不可能的,因为无法将目录路径与其余的url片段区分开来。最简单的方法是在每个站点根目录中部署.htaccess而不是实际的Web根目录。在这种情况下,您之前的RewriteRule就足够了。

RewriteRule ^([\w\-\/]+)$ index.php?page=$1 [L,QSA]

如果您具有以下目录结构并使用以下网址http://example.com/~mysite/seo/friendly/urlhttp://example.com/sample/test/seo/friendly/url,则它们都会生成相同的结果index.php?page=seo/friendly/url

~mysite/
  .htaccess
  index.php

sample/
  test/
    .htaccess
    index.php