8

htaccess を使用して URL を読みやすい URL に書き換え、PHP で $_GET 変数を
使用したいと考えています。また、URLに必要のない変数もあります。URL で最大 3 つの変数を使用します

URLはどこにsub.mydomain.com/page/a/1/b/2/c/3つながる必要がsub.mydomain.com/page.php?a=1&b=2&c=3あり、URLはどこにsub.mydomain.com/a/1/b/2/c/3つながる必要がありますsub.mydomain.com/index.php?a=1&b=2&c=3$_GET['a'] = 1

いろいろ探して試した結果、これにたどり着きました

RewriteEngine on
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ $1.domain.com/$2.php?$3=$4&$5=$6&$7=$8 [QSA,NC]  
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ $1.domain.com/index.php?$2=$3&$4=$5&$6=$7 [QSA,NC]  
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ $1.domain.com/$2.php?$3=$4&$5=$6 [QSA,NC]  
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ $1.domain.com/index.php?$2=$3&$4=$5 [QSA,NC]  
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)/([^/]+)$ $1.domain.com/$2.php?$3=$4 [QSA,NC]  
RewriteRule ([^/]+)\.domain.com/([^/]+)/([^/]+)$ $1.domain.com/index.php?$2=$3 [QSA,NC]  
RewriteRule ([^/]+)\.domain.com/([^/]+)$ $1.domain.com/$2.php [L,QSA,NC]  

しかし、私が得るのは見つからないサーバーエラーです

私はこれがあまり得意ではないので、何かを監督するかもしれません。
また、最後にスラッシュを付けても付けなくても動作するようにしたいと思います

RewriteCond を利用したり、いくつかのオプションを設定したりする必要がありますか?

前もって感謝します。

4

1 に答える 1

8

を使用する場合RewriteRule、行にドメイン名を含めません。また、最初に RewriteEngine をオンにしてください。このような:

RewriteEngine On
RewriteRule ^([^/]+)/([^/]+)$  index.php?$1=$2
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$  index.php?$1=$2&$3=$4
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$  index.php?$1=$2&$3=$4&$5=$6

最初の行は に書き換えsub.mydomain.com/a/1られsub.mydomain.com/page.php?a=1、2 番目の行は に書き換えsub.mydomain.com/a/1/b/2られsub.mydomain.com/page.php?a=1&b=2ます。

于 2012-11-23T08:41:42.760 に答える