0

.htaccess ファイルに次の行があります。

RewriteRule ^(.*)$ index.php?page=$1 [NC,L]

そしてindex.phpの行:

$page = $_GET['page']; echo $page;

http://www.example.com/test-pageにアクセスすると、index.php が返されます。

私が見つけた唯一の修正方法は、次のことです。

RewriteRule ^(.*)/$ index.php?page=$1 [NC,L]

http://www.example.com/test-page/にアクセスすると、動作してテストページが出力されます。

ただし、Webページでhttp://www.example.com/test-page/を使用したくありません。 http://www.example.com/test-pageを使用したいです。

できれば、内部書き換えで URL の末尾に / を追加するルールを追加せずに、どうすればこれを修正できますか?

4

1 に答える 1

1

試す

RewriteRule ^(.*)$ /index.php?page=$1 [NC,L]

または、このようなことを試してください

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

これにより、すべてのトラフィックが index.php にリダイレクトされます。たとえば$_SERVER[REQUEST_URI]、パスを取得するために使用できます。

于 2012-06-03T21:45:06.643 に答える