0

我有一个简单的问题,我尝试使用下面的代码删除地址栏上的 .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]

它可以工作,但最终它继续显示“未找到对象”我该如何解决这个问题?

4

2 回答 2

1

你可以尝试使用这个:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

示例:您的页面是: www.yoursite.com/yourpage.php 。现在您可以在没有“.php”的情况下访问同一页面。

您可以尝试删除 [R] 永久重定向(以删除您的错误),并在规则中保留扩展名。

我希望这能帮到您!

于 2013-06-25T05:01:35.050 回答
0

如果您只想.php从 URL 中删除扩展名,只需使用Options +MultiViews,无需重写。

于 2013-06-25T05:01:51.833 回答