2016-03-09 281 views
1

我在更改.htaccess中的根目录时遇到问题。在.htaccess中更改根目录

我的文件夹结构看起来像this

我想实现的是,当我访问此页面:

/comparty /约/

页我将看到的是这个页面:

/comparty /页/约/

我已经尝试在谷歌搜索,但我发现的代码没有工作,虽然我试图改变它:

RewriteEngine On 
RewriteBase /comparty/ 
RewriteRule ^(.*)$ pages/$1 [L] 

我不希望它重定向,我想保留相同的URL。另外,我在Apache缓存.htaccess文件时遇到了一个很大的问题,所以我一直无法测试很多东西。

在此先感谢。

编辑

我找到了一种方法来重写URL从/ comparty /页/约/到/ comparty /约/ - 这是代码:

RewriteEngine On 
RewriteBase /comparty/ 
RewriteRule ^about/(.*)$ pages/$1 [L] 

对有关这只能但是,页面。我需要做些什么,使其具有动态性并与每个页面一起工作?

+0

你当前的'.htaccess'文件是什么? –

+0

上面的代码是我的.htaccess文件中的内容:) –

+0

该文件是否位于'comparty'目录中?而“页面”是一个目录?如果是这样,那里有一个'.htaccess'吗?如果没有一个,那里有什么? –

回答

1

您需要使用中对动态模式:以上

RewriteEngine On 
RewriteBase /comparty/ 
#if the request is not for an existent dir 
RewriteCond %{REQUEST_FILENAME} !-d 
#and the request is not for an existent file 
RewriteCond %{REQUEST_FILENAME} !-f 
#rewrite the request to "/pages/request" 
RewriteRule ^(.*)$ pages/$1 [L] 

RewriteConditions是很重要的,以避免重写你的存在的文件和目录到/页子文件夹。如果没有这些条件,规则将重写所有请求,包括目标路径/页面,这可能会导致重写循环错误。

+0

非常感谢!但是我怎么才能让它在index.php页面上工作呢?现在当我访问/分隔/它只是显示目录。 –

+0

你好@starkeen - 我还有一个问题。如果我访问例如/ comparty/about/qwerty /(“qwerty”子文件夹不存在),我得到一个“500内部服务器错误”。这是由重写时的一些循环造成的吗?我能做些什么来解决它?提前致谢。 –