私はMVC PHPアプリケーションで作業しています。htaccessとurlリダイレクト
私の.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ /mvc/index.php?url=$1 [QSA,L]
私のindex.php:
<?php
$url = $_REQUEST['url'];
echo $url;
だから私は、URLに(mysite.com/mvc/help)のようなもの、PHPの印刷物(助けを書きます)をメインページに表示します。 (mysite.com/mvc/index/log)が返す(index/log)のようなURLに書いたものはすべてうまく動作しますが、mysite.com/mvc/indexを書くとエラーはなくなりますが何も表示されず、$ urlは設定されていません!
私はそれを正しく説明したいと思う。 乾杯。
編集:私はミスをしました。(mysite.com/mvc/index/log)は何も返しません。最初の単語が "索引"の場合、URLがmysite.com/mvc/log/indexのように動作し、それが動作して返される(log/index)場合、それは機能しません。
また、URLが(mysite.com/mvc/index/logまたはmysite.com/mvcのように)空の配列を返すindex.php(print_r($ _ GET);)の行を追加しました。/index)、それが助けることができるなら...
少しの調査の後で私は "index"という単語が ".html"または ".php"で自動完成していると私は知らないどのようにそれを取り除くために...ソリューション
:
Options -Indexes +FollowSymLinks -Multiviews
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /mvc/index.php?url=$1 [L]
:ここに 私のhtaccess取り組んでいます
3番目のRewriteCondですか?私はいつも!-dと!-fを使っていますが、前には見たことがありません!それは何ですか? –
!-dは「フォルダではありません」、!-fは「ファイルではない」、!-lは「リンクではない」です。 私はそれを試してみましたが、私は同じ問題があります。 – M4MM0N