添加尾部斜杠 mod_rewrite

添加尾部斜杠 mod_rewrite

只是想知道如何使用 Mod_Rewrite 在 URL 末尾添加斜杠?

这是我当前的.htaccess 文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)$ index.php?pageName=$1

我的 URL 显示如下:

wwww.****.com/pageName

我希望它显示如下:

wwww.****.com/pageName/

该 URL 内部保存着一个 GET 请求,但我希望它看起来像一个真正的目录。

答案1

首先我们需要有'mod_rewrite'模块已启用。

# a2enmod rewrite

然后确保您的配置文件有

RewriteEngine on

在应用以下规则之前。

以下规则将检查是否已请求

  • 文件不存在
  • 请求不是针对 index.php
  • REQUESTED_URI 不以 / 结尾

然后

使用请求的内容和附加内容对 domain.tld/ 进行外部重定向 (301)。将此作为给定集合的最后一条规则。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.tld/$1/ [L,R=301]

下一条规则

  • 如果有新请求,文件不存在
  • 如果目录不存在
  • 如果请求不是针对index.php

然后将请求传递为'页面名称' 参数到 index.php / 制定这最后一条规则并执行查询字符串附加。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index.php
RewriteRule ^(.*)$ index.php?pageName=$1 [L,QSA]

相关内容