1

.htaccessファイルを操作してURLから変数を変更/非表示にする方法がわかりません

WordPressの.htaccessファイルを使用したいのですが、.htaccessファイルには すでに次のスクリプトが含まれています。

    # BEGIN WordPress

    <IfModule mod_rewrite.c>

    RewriteEngine On
    RewriteBase /my_site/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /my_site/index.php 

    [L]
    </IfModule>

    # END WordPress

私はURLを持っています

http://localhost/my_site/project-detail/?pro_id=7

そして私はpro_id=7のように非表示にしたい

http://localhost/my_site/project-detail/

しかし、私のphpスクリプトファイルでこの$_GET['pro_id']をキャッチできる可能性があります。

また

http://localhost/my_site/project-detail/7

私も試しました

RewriteRule ^project-detail/(.*) /project-detail/?pro_id=$1
4

2 に答える 2

0

あなたはそのようなことを試しましたか:

RewriteEngine On 
RewriteRule ^project-detail/([0-9]+)$ project-detail/?pro_id=$1
于 2012-07-16T10:05:34.693 に答える
0

RewriteBase /my_site/これらはワードプレスのものの前にある必要があるため、ディレクティブの上に追加してみてください。

まず、実際のリクエストに直接アクセスして、クエリ文字列なしで URL にリダイレクトできます。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /my_site/project-detail/?\?pro_id=([^&\ ]+)&?([^\ ]*)
RewriteRule ^ /my_site/project-detail/%1?%2 [R=301,L]

これにより、次のような URLhttp://localhost/my_site/project-detail/?pro_id=7が にリダイレクトされ、次http://localhost/my_site/project-detail/7のような URLhttp://localhost/my_site/project-detail/?pro_id=7&other=paramが にリダイレクトさhttp://localhost/my_site/project-detail/7?other=paramます。余分なパラメーターがまったく必要ない場合は、ルールのターゲットから%2を削除してください。これにより、ブラウザのアドレス バーがpro_idクエリ文字列のない URL に変わります。ここで、クエリ文字列に内部的に書き直す必要があります。

RewriteRule ^my_site/project-detail/([^/]+)$ /my_site/project-detail/?pro_id=$1 [QSA,L]

そのため、内部的に URI は に書き換えられます/my_site/project-detail/?pro_id=7が、ブラウザーのアドレス バーにはまだきれいな URL が表示されています。

于 2012-07-16T20:06:39.827 に答える