0

ユーザーが自分のドメインで入力したすべてのアドレス URL を送信したい

QUERY_STRING をルート ディレクトリに、ファイル index.php に

パラメータ url=QUERY_STRING を使用

ユーザータイプの例www.mydomain.com/abc/123

そうなるwww.mydomain.com/index.php/?url=abc/123

私の htaccess コードはパラメーター url を送信しません。理由はわかりません:

# Use PHP5 Single php.ini as default
AddHandler application/x-httpd-php5s .php

RewriteEngine On

RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

私のphpファイル:

<?php

    if ($GET['url']){
        $url = $GET['url'];
        echo ($url.'<br />');
    }
?>
we are in root directory.

どうもありがとう

4

4 に答える 4

1

[NE]RewriteRule にフラグを追加することをお勧めします

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L,NE]

これにより、疑問符がエスケープされなくなります。

あなたの RewriteCond 条件に少し混乱しています。正規表現は、空の文字列を含むすべての可能な文字列と一致する必要があるため、条件は常にパスする必要があります。

于 2012-12-17T08:59:35.070 に答える
0
 RewriteEngine on

 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f

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

それは動作します..

于 2012-12-17T08:51:07.427 に答える
0

にあり$_SERVERます: $_SERVER['QUERY_STRING']

于 2012-12-17T08:40:42.247 に答える
0

クエリ文字列パラメーターにする必要がありますか? それ以外の場合は、リクエストを index.php にリダイレクトし$_SERVER['REQUEST_URI']、元のリクエストされたパスを含む php 内から使用します。

そのために機能する.htaccessルールは次のとおりです。

DirectoryIndex index.php

RewriteEngine on

RewriteCond %{REQUEST_FILENAME}  -d
RewriteRule  ^.*$  -  [L]

RewriteCond %{REQUEST_FILENAME}  -f
RewriteRule  ^.*$  -  [L]

RewriteRule ^.*$    index.php [L]
于 2012-12-17T08:42:14.067 に答える