0

バックエンドとフロントエンドが別々になっているyiiアプリがあります。わかりやすいURLを作成しようとしています。私はいくつかのオンラインツールを試しましたが、それを正しく取得できませんでしたので、このURLが必要です

  • http://mydomain.lc/abs/admin/some/crazy/urls (for example some/crazy/urls can be admin/index)

次のように書き直されます:

  • http://mydomain.lc/abs/backend.php/some/crazy/urls (because this url works directly)

また、フロントエンドサイトもありますが、どちらも同じプロジェクトに含まれているため、.httacessを共有しています。フロントエンドの.htaccessのルールは次のとおりです。このURL:

  • http://mydomain.lc/abs/some/crazy/urls (some can not be admin here, so we can differentiate btw fron and back end)

する必要があります

  • http://mydomain.lc/abs/index.php/some/crazy/urls

私は持っています:

<IfModule mod_rewrite.c>
    RewriteEngine On 
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^abs/admin/?(.*?)$ abs/backend.php?url=$1 [QSA,L]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(?!abs/admin\/)(.*?)$ abs/index.php?url=$1 [QSA,L]

</IfModule>

上記のスクリプトは機能していません。ルートはabsフォルダーの下にあり、ルートの.htaccessは

4

2 に答える 2

1

問題はにあると思いRewriteBaseます。

/absディレクトリ内の.htaccessファイルでこれを試すことができます。

最後のOPコメントに従って更新します。this one is correct: backend.php/some/crazy/urls

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /abs

# Backend admin
RewriteCond %{REQUEST_URI} !backend\.php  [NC]
RewriteRule ^admin(.*)  /backend.php/$1   [QSA,L,NC]

# Frontend
RewriteCond %{REQUEST_URI} !index\.php      [NC]
RewriteCond %{REQUEST_URI} !admin           [NC]
RewriteRule ^(.*)     /index.php/$1   [QSA,L,NC]
于 2013-02-28T05:48:45.753 に答える
1

RewriteBase /を変更する以外に何も変更する必要はありませんRewriteBase /abs

RewriteEngine On 
RewriteBase /abs

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^admin/?(.*?)$ backend.php?url=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?!admin\/)(.*?)$ index.php?url=$1 [QSA,L]
于 2013-02-28T06:07:33.627 に答える