1

以下は私の.htaccessです:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?url=$1 
RewriteRule ^(.*)/$ index.php?url=$1  
</IfModule>

ファンシーなツイッターのURLをやろうとしています。

www.mywebsite.com/home.php ではなく www.mywebsite.com/home

私のindex.phpコードでは、次のようになります:

<?php

$key=$_GET['url'];

if($key=='index')
{
include('welcome.php'); // welcome page
}
else if($key=='login')
{
include('login.php'); // Login page
}
else
{
include('index.php'); // go back to index.php
}
?>

これにより、無効な 404 エラーが発生し続けます。出力すると:次 echo $keyのように表示されます:index.phpnotindex

私は何を間違っていますか?

4

2 に答える 2

0

.php拡張子を非表示にする .htaccess コードを探している場合、これは機能するはずです。

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

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

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
于 2013-09-03T17:03:31.890 に答える