1

これは私の現在の .htaccess です

   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^([0-9a-zA-Z-]+)/?$ index.php?u=$1 [L]
   RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
   RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

www.example.comをexample.comに変換し、 example.com /usernameをexample.com/index.php?u=usernameとして解釈します

ここで、 example.com/index.php?u=username&e=email のような 2 番目の引数を渡し、 example.com/arg1&arg2形式を維持したいと考えています。.htaccess でそれを行うにはどうすればよいですか?

4

1 に答える 1

0

まず、ルーティング ルールのにリダイレクトを移動する必要があります。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

次に、2 引数のルートを確認します。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z-]+)/([^/]+)/?$ /index.php?u=$1&e=$2 [L,QSA]

(これは次のような URL を想定しています:http://example.com/username/emailaddressですが、本当にそれらを分離したい場合は、&代わりに次のルールを使用してください:

RewriteRule ^([0-9a-zA-Z-]+)&([^/]+)/?$ /index.php?u=$1&e=$2 [L,QSA]

そして、これは次のような URL を想定しています。http://example.com/username&emailaddress

元のルールは次のとおりです。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z-]+)/?$ /index.php?u=$1 [L,QSA]
于 2012-12-18T06:06:47.827 に答える