2

私の Web アプリケーションには、「www.mysitename.com/foldername/controller/method」のような URL パターンがあります。要求されたすべてのページは、最初にルート フォルダーの index.php にリダイレクトされ、次に要求されたページが処理されます。しかし、私が管理パネル(www.mysitename.com/admin)に行くたびに、URLはフォルダ名として「admin」を取得し、管理者のindex.phpを表示します(これは通常の方法です)次にcontrollernameまたはmethodnameを管理フォルダーの index.php 経由でリダイレクトしません。

「管理者」にアクセスするたびに、このパターン「www.mysitename.com/admin/foldername/controller/method 」のURLが必要です。また、admin から要求されたすべてのページは、最初に admin フォルダーの index.php にリダイレクトする必要があります。これが私のhtaccessファイルです-

    Options -Indexes 
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l

    RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
4

1 に答える 1

6

管理ディレクトリにファイルがあり.htaccessますか、それともルート ディレクトリに 1 つだけですか? 各ディレクトリに 1 つ必要です。

これをあなたの.htaccessin/htdocs/proと同じ.htaccessinでテストした/htdocs/pro/adminところ、説明したとおりに機能しました。

ルート htaccess で/htdocs/pro/.htaccess

Options -Indexes 
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

の管理者 htaccess/htdocs/pro/admin/.htaccess

Options -Indexes 
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

/htdocs/.htaccessinまたは両方の単一の htaccess ファイル/htdocs/pro/.htaccess

Options -Indexes
RewriteEngine on

# Change '/pro/' if directory is renamed
RewriteBase /pro/

# Change the '/pro/' portion of the condition if directory is renamed 
RewriteCond %{REQUEST_URI} ^/pro/admin(.+)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ admin/index.php?url=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
于 2013-02-24T05:49:50.890 に答える