.htaccess重写网址不起作用

时间:2012-10-09 06:54:24

标签: .htaccess mod-rewrite url-rewriting

我一直在寻找2天,但还没有找到解决这个问题的完整解决方案。

我的目录(在localhost上):

  - fons(这是我的 htaccess 文件)
  - - 功能(某些功能)
  - - web(index.php)
  - - docs(index.php)
  - - user(index.php)

当我去localhost / fons /时,我想看到网页地图的内容,但网址应保留为localhost / fons。如果我去localhost / fons / docs /然后我看到文档内容,localhost / fons / user / - >用户内容

我写的.htaccess:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(fons/user|fons/docs)
RewriteRule ^$ /fons/web

有了这个htaccess,当我去localhost / fons /我被重定向到web子文件夹并且url发生了变化。

我需要更改以便网址保持不变,但是我看到了网络文件夹的内容?

如果可能的话,有没有办法抛弃htaccess中的'fons',所以将来当我创建具有相同结构的另一个项目时,我可以复制粘贴htaccess而不需要更改它?

1 个答案:

答案 0 :(得分:1)

你应该可以使用RewriteBase来消除/ fons:

RewriteEngine on
RewriteBase /fons
RewriteCond %{REQUEST_URI} !^/(user|docs)
RewriteRule ^$ /web [NC]

同样根据经验,除非您设置了[R]标志,否则重写器不应该实际转发到浏览器URL栏中的新URL。我添加了[NC](不区分大小写的标志)来显式地声明没有[R]标志。如果它正在做,你能提供一个进一步测试的链接吗?