4

これが私の .htaccess ファイルです。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [NC,L,QSA]

これは、.php 拡張子を使用していないときにページにアクセスできるようにするという事実で機能します。

Old = domain.com/test.php
New = domain.com/test

悪い点は、次のリンクで get データを送信すると、データが渡されないことです。QSAオプションがそれをしたと思ったのですが、どうしたのですか?

domain.com/test?id=1
4

3 に答える 3

6

クエリ文字列全体を照合し、後方参照を使用して新しい URL に追加すると、うまくいくはずです。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ $1.php?%1 [NC,L,QSA]
于 2013-03-19T18:26:09.997 に答える
1

より簡単な解決策を次に示します。チームプロジェクトで使用しています。ルートだけでなく、Web サイトの任意のディレクトリでも機能します。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
于 2017-01-19T21:39:12.557 に答える
0

合格idしている場合は、このコードを使用する必要があります

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^test/(.*)$ /test.php?id=$1

アクセスできるようになりました

domain.com/test?id=1

から

domain.com/test/1
于 2013-03-19T18:08:52.697 に答える