2017-11-08 10 views
0

URLの前にcms/を追加して、ユーザーエンドページとバックエンドページを分離して保存しようとしています。私の.htaccessファイルは次のようになります。私は、URLパラメータurlによってpagesフォルダ内のページアルを含め、私の外側index.php2つのディレクトリのRewriteRule

> Project 
    > cms 
     index.php 
     cms_page1.php 
     cms_page2.php 
    > pages 
     page1.php 
     page2.php 
     page3.php 
.htaccess 
index.php 

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?url=$1 [NC] 
RewriteRule ^cms/(.*)$ cms/index.php?url=$1 [NC] 

私のディレクトリは次のようになります。それらはユーザエンドのページになります。私はこのインデックスページで私はすべてのページのためのスタイリングとナビゲーションも持っているので、これをやっています。私はcmsフォルダ内のページについても同じことをしたいと思います。

www.mysite.com/cms/に行くと、想定されているようにcmsディレクトリのインデックスページに移動します。しかし、www.mysite.com/cms/cms_page1に行くと外側のインデックスファイルに行き、そのファイルのurlパラメータはcms/cms_page1です。しかし、私がしたいのはcms/index.php?url=cms_page1なので、index.phpをcmsディレクトリに開き、cms_page1ページが含まれています。

答えて

0

なぜこれが起こっているのか分かりません。 enable loggingは、URLの書き換え方法を確認するためのものです。

私はそれがあなたのルールの順序と関係があり、特定のルールが一致すると停止していないと思われます。

これを試してみてください:

RewriteRule ^cms/(.*)$ cms/index.php?url=$1 [L,NC] 
RewriteRule ^(.*)$ index.php?url=$1 [NC] 

Lフラグstops any other rules being appliedを追加します。

関連する問題