1

現在のサイトは a.php としての動的 php です。

ユーザーが自分のサイトにアクセスして、元の a.php ではなく、a.html を使用できるようにします。apache2.x では、apache の httpd.conf を内部に設定します。

LoadModule rewrite_module modules/mod_rewrite.so
   <Directory "c:/www/xxx">
     rewriteengine on
     rewritebase /
     RewriteRule ^a.html$ a.php
   </ Directory>

上記は最も単純な例です。HTML は直接 php に解析されます。さて、問題は、a.php と a.html にアクセスできますが、ユーザーがアクセスしたデフォルト ページは常に a.php です。

上記の設定が間違っていることを知りたいですか?または、私のApache構成に加えて、対応する動的URLが静的に変換された元のファイルの前景にある必要がありますか? 変更したい場合は?「隠しa.php」の目的を達成するには?

4

2 に答える 2

0

代わりに、リダイレクト ルールを htaccess ファイルに記述し、ルートに配置する必要があります。

これは何ができるかの例です (これを .htaccess ファイルに入れて root に置きます):

RewriteEngine On

#/ rewrite html to php
RewriteRule ^(.*)\.html$ $1.php?redirectLoopStopper=1 [QSA,L]

#/ redirect .php to .html
RewriteCond %{QUERY_STRING} !(redirectLoopStopper=1)
RewriteRule ^(.*)\.php$ PATH/TO/PROJECT/$1.html [R=301,L]
于 2013-03-29T07:42:49.810 に答える
0

これを処理するために .htaccess に必要なものは次のとおりです。

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

# To externally redirect /dir/foo.php to /dir/foo.html
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1.html [R=301,L]

# internal forward from abc.html to abc.php
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*)\.html$ /$1.php [NC,L]
于 2013-03-29T12:21:59.963 に答える