我试图通过在网址前添加cms/
来保持用户端页面和后端网页的分离。我的.htaccess
文件看起来像这样。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [NC]
RewriteRule ^cms/(.*)$ cms/index.php?url=$1 [NC]
我的目录如下所示:
> Project
> cms
index.php
cms_page1.php
cms_page2.php
> pages
page1.php
page2.php
page3.php
.htaccess
index.php
在我的外index.php
我通过网址参数pages
在url
文件夹中添加了网页。这些将用于用户端页面。我这样做是因为在那个索引页面中我还有所有页面的样式和导航。我想对cms
文件夹中的页面做同样的事情。
当我转到www.mysite.com/cms/
时,它会转到cms目录中的索引页面。但是当我转到www.mysite.com/cms/cms_page1
时,它会转到外部索引文件,该文件中的url
参数为cms/cms_page1
。但我想要它做的是:cms/index.php?url=cms_page1
因此它会在cms目录中打开index.php
,然后包含cms_page1
页面。
答案 0 :(得分:0)
我不确定为什么会这样。您应enable logging,以便了解如何重写网址。
我怀疑这与您的规则顺序有关,而且一旦某些规则匹配,您就不会停止。
试试这个:
RewriteRule ^cms/(.*)$ cms/index.php?url=$1 [L,NC]
RewriteRule ^(.*)$ index.php?url=$1 [NC]