1

現在、 http: //domain.com/account が account.php にリダイレクトされるように、php 拡張子なしで URL を入力できる .htaccess ファイルがあります。

http://domain.com/account/contactinfo (またはhttp://domain.com/account/settings/groupsなど)を入力してもアカウントに移動できるようにしたいと考えています。 php ですが、これを達成するために必要なものを変更する方法がわかりません。

現在の .htaccess :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(([A-Za-z0-9\-_\.]+/)*[A-Za-z0-9\-_\.]+)?$ $1.php

どんな助けでも大歓迎です!明らかに、フォルダーが存在する場合は、そのパスをたどる必要があります (たとえば、/folder/page.php が存在する場合、http: //domain.com/folder/page/create はfolder/page.php に移動します)。

4

1 に答える 1

1

これを試してみてください。クエリ文字列に URI 情報を渡す必要はありません (つまり、アプリは引き続き を参照します$_SERVER['REQUEST_URI']) 。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9\-_\.]+)(/[A-Za-z0-9\-_\.]*)?$ $1.php&q=$2 [QSA]
# Note the optional '&q=$2' on line above if you want to make removed part of URI available as passed parameter

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ / [L,QSA]

有効な php ファイルをチェックする条件を削除したので、書き換えられたリクエストが有効な PHP ファイルを指していない場合にのみサイト ルートにリダイレクトする 2 つ目の条件付き書き換えルールを追加したことに注意してください。明らかに、これを 404 ページまたはリダイレクトしたい他のページにリダイレクトできます。または、これを完全に削除して、Apache にデフォルトの 404 応答を返すようにすることもできます。

于 2012-08-31T19:24:14.747 に答える