質問

PHPを使用してWebアプリケーションを構築しますが、ブラウザのアドレスバーに.php拡張機能なしでWebページが必要です。 Eampleのために http://www.example.com/index.php のようなショー http://www.example.com/index ブラウザのアドレスバーで。

これどうやってするの?

役に立ちましたか?

解決

これを名前のファイルに入れます .htaccess あなたのwww-rootで:

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

これは、Apacheを実行し、mod_rewriteがアクティブ化されている場合に機能します。

他のヒント

.htaccessファイルを作成するだけです wamp/www/ このコードをコピーします。

Options +FollowSymlinks


RewriteEngine On


RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f


RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule ^(.+)$ /$1.php [L,QSA]

望み!これは誰にでも役立ちます!!

適切な方法を見つけたいと思うでしょう Webサーバー用。マッピングできます

www.domain.com/page

www.domain.com/page.php

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

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

# To internally redirect /dir/foo/ to /dir/foo.php
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

IIS6の古いバージョンでは、32ビットプロセスにあると仮定すると、Isapi Rewriteは素晴らしい無料のURL書き換えモジュールです。 IIS 6の64ビットの中で、私は商用製品Helicon Isapi Rewrite 3が素晴らしいツールであることを発見しました。しかし、32ビットの場合、Ionicsは無料で、必要なすべてを行います。

http://iirf.codeplex.com/

apache2.confで私が持っています

<Files data>    
 ForceType application/x-httpd-php    
</Files>

それは意味します data PHPファイルとして扱われます 拡張機能なし

それを行う方法はいくつかあります。

mod-rewriteを使用してfoo.phpにfooを再配線して、 /barのリクエストが/bar.phpによって処理されるようにすることができます。

ディレクトリとデフォルトファイルを使用することで、/foo/index.phpによって処理されるdirecory /foo /にリンクすることができます

PHP-Scriptを404-Errorsのハンドラーとして設定してから、存在しないファイルにリンクするだけで、ハンドラーファイルはそれが好きです。 (通常、URLからPHPファイルまで何らかのマップを使用して)

Webサーバーに、特定のWebサーバーに対するすべてのリクエストがPHPで処理されることを伝えることができます。

最初のソリューションまたは2番目のソリューションは最も単純なものですが、最後の2つのソリューションは最良の柔軟性を与え、そのバリエーションはほとんどの大きなフレームワークが行うことです。

Apache WebServerを使用したシステムでは、mod_rewriteを使用します。

IISの新しいバージョンでは、mod_rewriteのバージョンを使用できます。古いバージョンでは、プラグインを購入する必要があります。

スタックオーバーフロー記事

スタックオーバーフローを検索すると、すでに質問された質問に対する回答を見つける必要があります。

ここは 初心者のチュートリアル URL書き換え用。

little modification - better to use REQUEST_URI and check for the directory


# Turn mod_rewrite on

RewriteEngine on

# To externally redirect /dir/foo.html to /dir/foo/
RewriteCond %{REQUEST_URI} ^(.+)\.html?$ [NC]
RewriteRule ^ %1 [R,L]

# To internally redirect /dir/foo/ to /dir/foo.html
RewriteCond %{DOCUMENT_ROOT}/$1 !-d
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.*?)/?$ $1.html [L]

# To externally redirect /dir/foo.html to /dir/foo/
RewriteCond %{REQUEST_URI} ^(.+)\.html?$ [NC]
RewriteRule ^ %1 [R,L]

# To internally redirect /dir/foo/ to /dir/foo.html
RewriteCond %{DOCUMENT_ROOT}/$1 !-d
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.*?)/?$ $1.html [L]

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

このコードをリモートサーバーに.htaccessファイルに挿入します。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

これにより、意図した方法でURLが書き換えられます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top