2016-03-21 13 views
0

私はこの問題をStacksで検索していますが、解決策を見つけることができません。バインディング.htaccess(mod_rewrite)

私はサブドメイン上に(php)システムを構築しましたが、これを済ませたら顧客のサーバー側にドロップする必要があります。

私はページを見るが、彼は情報を読み込まない。

の.htaccess

Options +FollowSymlinks 
RewriteEngine On 
RewriteCond %{HTTP_HOST} !^*******\.******\.nl/mtsadmin$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([a-z0-9]*)$ $1.php 

RewriteRule ^admin/users/edit/([0-9]+) admin/users.php?edit=$1 [NC] 
RewriteRule ^/formulier /form.php?id=$1 [NC] 

私は「管理者」の前と「^」なし/でそれを試してみましたが、それは解決策ではありません。

マイページスクリプトの下。

if(isset($_GET['edit'])) { 
if(trim($_GET['edit']) != '') { 
$edit = $dbh->prepare('SELECT * FROM users WHERE id = :id'); 
$editvar = trim($_GET['edit']); 
$edit->bindParam(':id', $editvar, PDO::PARAM_INT); 

.htaccessファイルのパス public_htmlの/サブドメイン/ .htaccessの

ありマップ形式であり、それが動作します。

しかし、マップ public_htmlの/サブドメイン/管理/ users.phpで

.htaccessファイルで、このパスdoesntの仕事。それは私自身のサーバーで動作しますが、クライアントのサーバー上で動作しません。

私はあなたから聞いています!

+0

どのようにPHPファイルにアクセスしていますか? http://subdomain.yourdomain.com/admin/users.phpまたはhttp://yourdomain.com/subdomain/admin/users.php? – sariDon

+0

@sariDon subdomain.yourdomain.com/admin/users.phpライブhttp://subdomain.******.nl/mtsadmin/admin/users/edit/1 –

答えて

0
RewriteRule ^admin/users/edit/([0-9]+) admin/users.php?edit=$1 [NC] 

ルールで^マークを使用すると、書き換えられる文字列の始まりが非常にわかります。 あなたがコメントに投稿したとおりです。 /admin/users.phpは、ルールのようにadmin/usersから始まっているので、リダイレクトされます。しかし、/ mtsadmin/admin/usersは "admin"ではなく "mtsadmin"という文字列で始まり、書き換えルールによって捕らえられません。

運用サーバー上の正しいパスを反映するために、上記の行を変更してください。

+0

これは正常に動作します私のサーバであり、私のクライアントのサーバではありません。私はadmin/users.phpのリダイレクトを持っていますか?edit = 1 admin/users/edit/1への変更/form.phpと/ formulierは何が問題なのですか? –

+0

おそらくあなたのクライアントの/form.phpと/ formulierにはあなたのサーバと同じディレクトリがあります。 クライアントサーバーのmtsadminパスは、サーバーと.htaccessファイルの管理パスとは異なります – DevilaN

+0

ページが読み込まれて404エラーが表示されませんが、users.phpを実行すると、edit = 1は動作しますが、/ users /編集/ 1私は動かない。だからPHPスクリプトや.htaccessの問題です。 –