-1

サイトのドキュメントからファイル拡張子を削除しようとし.phpているので、URLは次のようになります:
http
://www.mysite.com/ ではなく
http://www.mysite.com/home/ home.php

私はあらゆる種類のmod_rewriteコードを試しましたが、これ以外はどれも機能しませんでした。

#Enable rewrite engine
RewriteEngine On
# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://www.mysite.com/$1 [R=301,L]

# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://www.mysite.com/$1 [R=301,L]

# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]

私は何も知り.htaccessませんし、phpは初めてなので、基本的にこれを理解することはできません。現時点では、これは非表示になってい.phpますが、次のように実行するのではなく、生の形式/テキストでページのphpコンテンツを吐き出します。

<?php
    $page_title = "Home";
    include('includes/header.php'); 
    include('includes/mod_home/mod_intro.php');
    include('includes/copyrightbar.php'); 
    include ('includes/mod_login/login_form.php');
    include('includes/mod_home/mod_welcome.php');
    include('includes/mod_home/mod_platinum.php');

?>

<?php include('includes/mod_home/mod_starlight.php'); ?>
<?php include('includes/mod_home/mod_diamond.php'); ?>
<?php include('includes/mod_home/mod_newest.php'); ?>
<?php include('includes/mod_home/mod_featured.php'); ?>
<?php include('includes/mod_home/mod_gold.php'); ?>


<?php include('includes/footer.php'); ?>

なぜこうなった?私はすべてのオンラインチュートリアルに従いましたが、他の人はそのような問題はないようです。私のサーバーは.htaccessLinuxをサポートしており、実行しています。
私のリンクはまだ例えばに行きhome.phpます(私はこれらを変更する必要がありますか?)

4

1 に答える 1

0

あなたが見逃したのはRewriteBaseコマンドです。
これはコードです:

#Start rewriting after /
RewriteBase /
#ignore real directories
RewriteCond %{REQUEST_FILENAME} !-d
#ignore real files
RewriteCond %{REQUEST_FILENAME} !-f
#Rewrite the match to .php file
RewriteRule ^(.*)$ $1.php [QSA,L]

PHP が実行されない理由がある可能性があります。だから、確かに、これを試してください:

AddType application/x-httpd-php .php

代わりに、次のように GET パラメータ ページに書き換えることができます。

RewriteRule ^(.*)$ index.php?page=$1 [QSA,L]
于 2013-02-13T14:35:03.250 に答える