HTACCESS URL 转发到 PHP 文件,带和不带尾部斜杠


htaccess url forwarding to php file with and without trailing slash

多年来我一直在寻找这样的东西(当然有效)。 如果有人最终可以生成此代码,那就太好了。

目前,我一直在处理这个:

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteRule ^(.*)'/$ $1.php [NC]

它工作得很好,但没有尾部斜杠就不起作用。 令人讨厌的是,它将所有包含的文件视为一个文件夹,因此我永远向所有css和js文件添加../

除此之外,它的工作原理如下(按预期):

  1. 如果 www 不存在,则会添加
  2. http://www.example.com/page.php 将转到页面.php
  3. http://www.example.com/page/将转到页面.php
  4. http://www.example.com/page 在寻找文件夹时会出现 404 错误

我已经通过谷歌搜索尝试了很多不同的东西,但没有成功。 我需要做的只是喜欢没有尾部斜杠的 url,无论是以这种方式将其转发到尾部斜杠还是两者都喜欢。 整个想法是让它读取一个.php文件并将其显示为一个不错的 SEO 类型链接:www.example.com/page

Options +FollowSymlinks
RewriteEngine On
DirectorySlash Off
RewriteBase /
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteRule ^(.*)'/('?.*)?$ $1$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ $1.php [NC]
<IfModule mod_rewrite.c>
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

这行得通。回答这个问题。 谁能改善这一点?