1

.htaccessルート ディレクトリと管理ディレクトリの両方に 1 つのファイルを使用したいと考えています。

クリーンな URL を取得しようとしてadmin/index.php、管理者が URI にあるときにファイルを使用したいと考えています。それ以外の場合は、ルート dir を使用しindex.phpます。

これは私が持っているもので、最初の変数 (例: localhost/admin/users) では完璧に機能しますが、2 番目の変数 (例: localhost/admin/users/add_user) を入れると 404 になります。

助けてください、または単純化してください、私は髪を引っ張っています...

RewriteEngine on

# Remove trailing '/'
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R,L]

RewriteRule ^admin/?$ /admin/index.php
RewriteRule ^admin/([a-zA-Z0-9-]+)/?$ /admin/index.php?controller=$1 [QSA]
RewriteRule ^admin/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/?$ /admin/index.php?controller=$1&method=$2 [QSA]
RewriteRule ^admin/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/?$ /admin/index.php?controller=$1&method=$2&id=$3 [L,QSA]

RewriteRule ^([a-zA-Z0-9-]+)/?$ /index.php?controller=$1 [QSA]
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/?$ /index.php?controller=$1&method=$2 [QSA]
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/?$ /index.php?controller=$1&method=$2&id=$3 [QSA]
4

1 に答える 1