只是想知道如何使用 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]