Web サイトをリクエストするとき、URL に末尾のスラッシュを追加してから、mod_rewrite を使用してパラメータとして index.php に渡します。
私の.htaccessファイルは次のようになります。
RewriteEngine On
#Add trailing slash
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [R]
#Pass to index.php
RewriteRule ^(.*)/$ index.php?p=$1
そして、私のindex.phpファイルでは、パラメータを出力するだけです:
<?php echo $_GET["p"]; ?>
しかし、アドレスバーに http://mydomain.com/ 以外のもの、たとえば http://mydomain.com/contact を入力すると、 phpは常に を出力しますhttp://mydomain.com/index.php
。http://mydomain.com/index.php
などの要求されたページの代わりにパラメーターとして何らかの形で渡されましたが、contact
理由はわかりません...
また、編集するときは
RewriteRule ^(.*)/$ index.php?p=$1
に
RewriteRule ^(.*)/$ /index.php?p=$1
URLを入力します。たとえば、mydomain.com/contact
Apacheは302 Foundと移動先へのリンクを提供しますが、同じページにリンクしています...
何か案は?
ありがとう。