我在修复网站上的网址http://www.abelputra.com时遇到问题:我想将www.abelputra.com/software.php
更改为www.abelputra.com/software
。
我已经阅读了一个教程,建议如下:
对于.htaccess:
RewriteEngine On
RewriteRule ^ ([a-zA-Z0-9_-] +) $ index.php? Key = $ 1
RewriteRule ^ ([a-zA-Z0-9_-]+)/$ index.php? Key = $ 1
然后在php:
index.php --->
$Key=$ _GET ['key'];
if ($key == 'home')
{
include ('index.php'); // Home page
}
else if ($ key == 'software')
{
include ('software.php'); //
}
else if ($ key == 'webdesign')
{
include ('webdesign.php'); //
}
问题是当我使用software.php和index.php实现菜单来调用页面时:
www.abelputra.com/index.php?key=software
所发生的事情是显示的页面是两个页面,下面是software.php和index.php页面。
是因为我正在调用“include()”函数吗?
index.php结构:
标题
内容 - >包含开头的单词
页脚
software.php结构:
标题
内容 - >包含我的软件的解释
页脚
答案 0 :(得分:0)
我不知道我是否理解正确,但如果您只想重写URL(例如删除.php扩展名),则无需实现网关脚本或更改主页的逻辑代码(修改URL除外)。
例如,以下内容将允许您访问免费提示 abelputra.com/freetips/185
RewriteRule ^freetips/(\d+)$ freetips_det.php?tip=$1 [L]
常规扩展删除是一个众所周知的主题,例如:
htaccess code to remove extension AND add+force trailing slash?
答案 1 :(得分:0)
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 [NC]
RewriteRule ^ %1 [R,L,NC]
## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]