0

について簡単な質問をしたいと思い.htaccessます。からのフォームがありindex.html、 に値を渡したいと考えていますreceiver.php。の代わりに.htaccess出力するようにどのように構成しますか?http://localhost/demo/receiver/jibberishhttp://localhost/demo/receiver.php?fid=jibberish

http://{ホスト名}/demo/index.html

<form method="get" action="receiver.php">
  FID <input type="text" name="fid" value="jibberish"> <br>
  <input type="submit" value="Submit"> 
</form>

http://{ホスト名}/demo/receiver.php

<?php 
  echo $_GET['fid'];
?>

私は苦労しています。これが私の.htaccessコードです。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/$1 -f
RewriteRule ^/receiver.php$ /receiver.php?fid=$1 [PT]
</IfModule>
4

2 に答える 2

2

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(receiver)\.php\?fid=([^\s]+) [NC]
RewriteRule ^ /%1/%2? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(receiver)/(.+?)/?$ /$1.php?fid=$2 [L,NC,QSA]

正常に動作していることを確認したら、 に置き換えR=302ますR=301R=301mod_rewrite ルールのテスト中は (Permanent Redirect) を使用しないでください。

于 2013-05-29T03:49:56.570 に答える
1

これは、ルート ディレクトリの 1 つの .htaccess ファイルで機能するはずです。

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} /demo/receiver.php\?fid=([^&\s]+) [NC]
RewriteRule  .*            /demo/receiver/%1?  [R=301,L,NC]

RewriteCond %{REQUEST_URI}  !receiver\.php [NC]
RewriteRule  ^demo/receiver/([^/]+)/?  /demo/receiver.php?fid=$1 [L,NC]
于 2013-05-29T03:55:02.900 に答える