1

1つのサイトで2つのことを書き直したいです。

mysite.com/something -> mystie.com/index.php?s=something

mysite.com/something/another -> mysite.com/index.php?s=something&d=another

これは私のhtaccessです

RewriteEngine on
RewriteRule ^(.+)$ index.php?s=$1 [L,QSA]
RewriteRule ^(.+)/(.+)$ index.php?s=$1&d=$2 [L,QSA]

両方とも別々に機能しますが、一緒にすると機能しません...

4

3 に答える 3

1

問題は、最初のルールで「/」文字を一致させていることだと思います。次のように、ルールに文字クラスを追加するのが最も簡単な解決策ではないでしょうか。

RewriteRule ^([a-z0-9]+)$ index.php?s=$1 [L,QSA]
RewriteRule ^([a-z0-9]+)/([a-z0-9]+)$ index.php?s=$1&d=$2 [L,QSA]

または単にルールの順序を変更します。

RewriteRule ^(.+)/(.+)$ index.php?s=$1&d=$2 [L,QSA]
RewriteRule ^(.+)$ index.php?s=$1 [L,QSA]
于 2013-08-08T00:10:07.703 に答える