0

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

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

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将转到 page.php
  3. http://www.example.com/page/将转到 page.php
  4. http://www.example.com/page在查找文件夹时会出现 404 错误

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

4

1 回答 1

1
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>

这行得通。回答这个问题。任何人都可以改善这一点吗?

于 2012-08-12T04:45:16.203 回答