2016-05-30 6 views
0

私は.htaccessまでのルーティングシステムを使用してPHPでアプリケーションを開発しましたが、今日まで、 。.htaccess〜〜ユーザパラメータ(Apache UserDir)を使用したドメインIPでのルーティング

今日、私のクライアントは、ドメインがまだ関連付けられていないサーバーにアプリケーションを展開するように依頼しました。そのため、すべてが問題ないかどうかをテストするIPアドレスを私に提供しました。問題は、このIPがURLに存在するusernameパラメータを必要とし、その結果、実行が常にサーバのデフォルト404エラーページにリダイレクトされることです。

IPは、このようなもの(一部の値が変更されている)である:私は、追加のパラメータを指定せずに単にそのリンクを実行すると、私は私のDirectoryIndexするように構成されている私のserverindex.phpファイルに到達することができます

http://192.185.65.31/~gef/ 

.htaccess。 しかし、言語(例:en/)のようなパラメータを追加しようとすると、自動的に404ページにリダイレクトされます。次のように

マイ.htaccessルーティング設定は次のとおりです。

DirectoryIndex serverindex.php 

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . serverindex.php 

この構成では、いつも私は、例えば、belloweのようなURLを受信して​​操作することが許さ:

私はなるように、私は .htaccessを設定することができますどのように
Example: http://example.com/param1/param2/param3 

Array 
(
    [0] => param1 
    [1] => param2 
    [2] => param3 
) 

URLにユーザ名を入力しないでください(サーバがそれを処理して正しいユーザアカウントを記録できるようになります)。次のデータをパラメータとしてアプリケーションに渡しますか?

Example: http://example.com/~username/p1/p2/p3 

Array 
(
    [0] => p1 
    [1] => p2 
    [2] => p3 
) 
+0

おそらく、再書き込みはApacheの.confファイルでは許可されていませんか? –

+0

これは私がこのコード行を実行したときに真である 'strpos(shell_exec( '/ usr/local/apache/bin/apachectl -l')、 'mod_rewrite')!== false' – CIRCLE

答えて

2

ターゲットスクリプトの相対パスがあります。これを有効にするには、RewriteBaseを追加する必要があります。

RewriteBase /~gef/ 
+0

がそこにありますURIが '〜'で始まるパラメータで始まるとき、値 '/〜gef /'を動的にするには? – CIRCLE

+0

私は知らないし、試したこともありませんが、.htaccessファイルが特定のディレクトリにあるので、問題ではありません。 –

関連する問題