1

URLからphp拡張機能を削除しようとしていますが、うまくいきません。apache2.2.17 と php5.3 で Windows 7 を使用しています。今、私はそれを次のように構成しました

.htaccess ファイル内

OPTIONS -Indexes
IndexIgnore *

Options +FollowSymLinks

RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [R=301,L]

httpd.confでmod_rewriteを有効にしました

LoadModule rewrite_module modules/mod_rewrite.so

<Directory "D:/Apache/htdocs">
    Options Indexes FollowSymLinks ExecCGI MultiViews
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>

php.iniで

expose_php = On

これらの構成を行った後でも、Windows マシンの URL から php 拡張機能を削除できませんが、ubuntu サーバーでも同じことが機能しています。

ここに欠けているものはありますか?

4

2 に答える 2

2

これはあなたの質問に答えるかもしれません:

RewriteRule ^/([^-]*)$ /$1.php

ルート カタログで機能します。

RewriteRule ^catalog/([^-]*)$ カタログ/$1.php

または、自動スクリプトを作成できます。

RewriteRule ^/([^-] )/([^-] )$ /$1/$2.php

ただし、これは「httpd.conf」ファイル用です。

([^-]*) は変数を意味します。$1、$2 は変数に変換されたことを意味します。

www.verity.com/foo/bar => verity.com/foo/bar.php

于 2012-06-13T10:52:37.440 に答える
0

代わりにこれを使用してください:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(([A-Za-z0-9\-]+/)*[A-Za-z0-9\-]+)?$ $1.php

これにより、example.com/abc.php を example.com/abc として呼び出すことができます。

于 2015-01-23T22:24:59.220 に答える