2016-05-12 7 views
1

私は今簡単なログインビューでPHPアプリケーションを構築しています。 私は私のURL(コントローラとアクション)で2つのGETパラメータを使用してビューをルーティングしています:MVCはURLから「index.php」と「GET」リクエストを削除します

http://www.web.com/index.php?controller=access&action=login 

事があり、私はこのURLを好きではない、と私はこのようにそれを見せたかった。

http://www.web.com/access/login 

htaccessで一部のリダイレクトについて読みましたが、期待どおりに動作しません。誰でもこの解決方法やベストプラクティスを知っていますか?

それが助け場合、私はまた、あなたに私のアプリの構造をまくます:高度のため

app/ 
     |-- view/ 
     | |-- login.php 
     |-- base.php 

    src/ 
     |-- controller/ 
     | |-- AccessController.php 
     |-- router.php 

    index.php 
    .htaccess 

感謝を!

1)が、そのファイル上のメインのindex.phpとルートパターンにすべての要求をリダイレクト:

+0

[SEOフレンドリーURLのためのhtaccessの書き換えルールを作成する方法](http://stackoverflow.com/questions/28168375/how-to-write-htaccess-rewrite-rule-for-seo-の可能性のある重複フレンドリー - URL) – JimL

答えて

0

私が知っている2つの溶液があります。

作成し、.htaccessファイルと、この場合にはindex.phpにリダイレクトして、すべての要求を

Options +FollowSymLinks 
RewriteEngine on 

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] 
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
RewriteRule .* index.php [F] 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
RewriteCond %{REQUEST_URI} !^/index\.php 
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw|xml|jpg|ajx))$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .* index.php [L] 

をindex.phpにリダイレクトするためにすべてのURLを、このコードを入れて、あなたは$ _SERVER [ 'REDIRECT_URLからURLを取得することができますREDIRECT_URL ']と異なる部分から使用し、あなたが2溶液

2でセキュアなコードを使用する必要があります)ルートを扱う「]とルートは、ユーザーが/a/b.htmlを要求した場合、あなたは_SERVERを[$でき

を要求します」 .htaccessファイルで直接、しかし私は解決策#1をお勧めします

Options +FollowSymLinks 
RewriteEngine on 

RewriteRule a/b\.html index.php?controller=$1&action=$2