删除 htaccess 中目录和 url 查询之间的尾部斜杠



我正在用PHP做一个博客。我希望人们能够使用 url 查询加载页面,例如:

blog.mysite.com/article?a=my_cool_article

我实际上没有"文章"目录,我只有一个名为article.php

我在 .htaccess 中使用以下内容来访问内部重定向请求:

DirectorySlash Off
RewriteEngine on
RewriteRule ^article?([a-zA-Z0-9-_]+)/?$ /article.php?article=$1 [QSA,L]

它工作正常,但是当我尝试使用它时,它会在article?之间添加一个斜杠..它将网址更改为如下所示:

blog.mysite.com/article/?a=my_cool_article

我在这里尝试了一堆解决方案,但找不到任何有效的解决方案。感谢您抽出宝贵时间阅读!


以下是我现有的规则:

DirectorySlash Off
RewriteEngine on
RewriteRule ^article?([a-zA-Z0-9-_]+)/?$ /article.php?article=$1 [QSA,L]
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteCond %{REQUEST_URI} !^/[0-9]+..+.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}.txt(?: Comodo DCV)?$
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
Options +FollowSymLinks
RewriteOptions inherit
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Origin: "https://www.example.com"
Header set Access-Control-Allow-Origin: "https://example.com"
Header set Access-Control-Allow-Origin: "https://*.example.com"
Header set Access-Control-Allow-Origin: "https://src.example.com"
Header set Access-Control-Allow-Origin: "https://example.com/*"
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
AddDefaultCharset utf-8
<Files error_log>
    Order allow,deny
    Deny from all
    Satisfy All
</Files>

要删除尾部斜杠,您可以使用以下内容:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=301,L]

最新更新