0

在我的网站(所有 .php 文件)中,我想使用 htaccess 来:

a) 删除 .php 扩展名

b) 将 index.php 重定向到 www.mysite.com (连同 index )

我在stackoverflow中进行了搜索,我想出了:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !^/robots\.txt$
RewriteCond %{HTTP_HOST} !^www\.mysite\.com$ [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]

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

#Rewrite index.php back to /
RewriteCond %{THE_REQUEST} ^[^/]*/index\.php [NC]
RewriteRule . / [R=301,L]

哪个完成了部分工作,但看不到如何纠正:

a)如果我加载(在浏览器中)页面 www.mysite.com/about 它正确显示页面 about.php。但是,如果我加载 www.mysite.com/about.php 它不会删除 .php 扩展名,这对于谷歌来说这是 2 个不同的页面。

b)如果我加载(在浏览器中)页面 www.mysite.com/index.php 它会转到 www.mysite.com 这是我想要的但是如果加载 www.mysite.com/index 我有一些问题,因为它显示同一页面,但看不到如何在此处删除索引部分。再说一次,对于谷歌,我有 2 个不同的页面。

希望我能正确解释我的问题。在简历中,htaccess 正在工作,但看不到如何按我的意愿调整它。

(obs:在我的网站页面之间建立了内部链接... href="about">关于我们...)

非常感谢!

4

1 回答 1

0

再次编辑

尝试

RewriteCond %{THE_REQUEST} ^[^/]*/^(.*)$\.php [NC]
RewriteRule . /$1 [R=301,L]
于 2012-05-11T10:22:07.007 回答