.htaccess htaccess RewriteRule*.php到/*/

.htaccess htaccess RewriteRule*.php到/*/,.htaccess,mod-rewrite,seo,.htaccess,Mod Rewrite,Seo,我就是找不到正确的解决方案,所以我希望有人能在这里帮助我 我现在有一个包含以下文件的网站: /admin/ /images/ /js/ about.php index.php news.php questions.php 因此,我的URL现在是: www.mydomain.com/about.php www.mydomain.com/news.php 我想要www.mydomain.com/about/,www.mydomain.com/news/ 我已经尝试了很多我发现的东西,但是没有一个

我就是找不到正确的解决方案,所以我希望有人能在这里帮助我

我现在有一个包含以下文件的网站:

/admin/
/images/
/js/
about.php
index.php
news.php
questions.php
因此,我的URL现在是: www.mydomain.com/about.php www.mydomain.com/news.php

我想要www.mydomain.com/about/,www.mydomain.com/news/

我已经尝试了很多我发现的东西,但是没有一个像它应该做的那样工作,或者它把其他的东西搞砸了

我最接近的是:

RewriteRule about/ about.php
RewriteRule about about.php

但是,如果我在包含name about的代码中使用一些图像(示例图像/about me.jpg),这也会造成混乱-可能是因为第二条语句。

通过
httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在
文档根目录下的
.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 [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_FILENAME}.php [L]

为了让生活更简单,我会停止使用基于目录的URL

/关于/

并使用更简单的文件基URL

/关于

额外的斜杠将页面移动到子目录中,页面中的所有相对引用都将中断

或者,您可以更改所有链接、包含和图像URL,以确保它们都与域的根相关。要做到这一点,请始终在URL之前包含斜杠(/),或使其成为完整URL

并使您的规则更加具体:

重写规则^/about$about.php

这些额外的^$表示开始和结束,因此必须精确匹配。

这对我很有用

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